Cuprins:
- Pasul 1: PĂRȚI
- Pasul 2: SCHEMA
- Pasul 3: COD
- Pasul 4: COD BITMAP
- Pasul 5: Vă mulțumim pentru vizualizare
Video: Space Race Game Versiunea 2: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Buna tuturor. Înainte de această versiune a jocului, am publicat prima versiune a jocului. Astăzi, ı vă va arăta versiunea 2 a jocului Space Race. Să vedem pașii …
Pasul 1: PĂRȚI
Iată o listă de părți pe care le-am folosit pentru a realiza acest proiect:
- Arduino UNO
- Modulul Joystick
- Jumper Wires (de la bărbat la bărbat și de la bărbat la femeie)
- Pană de pâine
Pasul 2: SCHEMA
VCC -> Arduino 5V
BL -> Pinul Arduino 3
GND -> Arduino GND
CLK (SCLK) -> pinul Arduino 8
DIN (MOSI) -> Arduino pin 9
DC -> Arduino pin 10
CE sau CS -> Pinul Arduino 12
RST (RESET) -> pinul Arduino 11
Pasul 3: COD
Codul are explicații despre funcțiile codului. O vei înțelege cu ușurință. Dacă aveți o problemă, mă puteți contacta.
#include
LCD5110 lcd (8, 9, 10, 11, 12); // (clk, cin, dc,, rst, ce)
boolean kontrol = true;
boolean dusmanoldu = true;
extern uint8_t SmallFont ; // descrieți fonturile
extern uint8_t MediumNumbers ; extern uint8_t arac ; // descrie forma noastră extern uint8_t dusmanAraci ; // desribe inamic shape const int xpin = A0; // joystick x pin char pozi = 3; // descrie locația, forma noastră începe locația 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // descrie inamicul1 x locația int dusmankonum2; // descrie inamicul2 x locația int dusmankonum3; // descrie malamic3 x locație int dusmankonum4; // descrie inamicul4 x locația int dusmankonum5; // descrie inamicul5 x locație int dusmaninYdekonumu;
void oyunEkrani () {// setează ecranul jocului
lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // desenăm dreptunghi lcd.setFont (SmallFont); // set font lcd.print ("skor", 57, 1); // print score lcd.print ("hiz", 60, 24); // viteza de imprimare lcd.setFont (MediumNumbers); // set font lcd.printNumI (skor, 55, 8); // get score lcd.printNumI (hiz, 63, 32); // get speed lcd.update (); }
void dusmanAracidurum (int yer, int asama) {// setează locații pentru formele inamice
if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if location = 1 draw inamic model this location if (yer == 2) {lcd.drawBitmap (10, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 3) {lcd.drawBitmap (18, asama, dusmanAraci, 7, 7); lcd.update (); } if (yer == 4) {lcd.drawBitmap (26, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 5) {lcd.drawBitmap (34, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 6) {lcd.drawBitmap (42, asama, dusmanAraci, 7, 7); lcd.update ();}}
void oyunbitti () {// dacă eșuăm, jocul s-a terminat
while (1) {întârziere (100); // așteptați 1 milisecundă lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTRE, 8); // print game over lcd.print ("skorunuz =", 3, 30); // tipărește-ți scorul lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // obține ultimul scor lcd.update (); }}
configurare nulă () {
pinMode (BL, OUTPUT); // set back light Output pinMode (xpin, INPUT); // setați pinul x ca intrare lcd. InitLCD (); // inițializați ecranul lcd lset.setContrast (55); // set contrast (amound 0 to 127) Serial.begin (9600); // începe comunicația în serie}
bucla nulă () {
analogWrite (BL, 350); oyunEkrani ();
// joyistic durumu … // setați locația joyistick …
int durumx = analogRead (xpin); if (durumx <300 && poziție! = 1 && kontrol == true) {// if location! = 1, x state600 && position! = 6 && kontrol == true) {// if location! = 3, x state> 600 și controlul este adevărat pozi ++; // măriți locația înseamnă că mutați forma spre dreapta kontrol = false; } else if (durumx> 300 && durumx <600) {kontrol = true; } // poziția durumu … // poziția statului … if (poziția == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // draw our ship if (pozi == 2) {lcd.drawBitmap (10, 41, arac, 7, 7); lcd.update ();} if (pozi == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();} if (pozi == 4) {lcd.drawBitmap (26, 41, arac, 7, 7); lcd.update ();} if (pozi == 5) {lcd.drawBitmap (34, 41, arac, 7, 7); lcd.update ();} if (poziție == 6) {lcd.drawBitmap (42, 41, arac, 7, 7); lcd.update ();}
if (dusmanoldu) {// dacă forma inamicului este moartă, verificați dacă sunt morți
dusmankonum1 = poziție; // desenează prima formă inamică dusmankonum2 = aleatoriu (0, 6); // desenează altă formă inamică undeva dusmankonum3 = aleatoriu (0, 6); dusmankonum4 = aleatoriu (0, 6); dusmankonum5 = aleatoriu (0, 6); dusmaninYdekonumu = 0; // aduce dușmanul de sus dusmanoldu = fals;} // inamicul este recreat astfel încât să nu fie morți
dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // desenează prima formă a inamicului și obține-o de sus în jos
dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // desenează a doua formă de inamic și obține-o de sus în jos dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == poziție) || (dusmankonum2 == poziție) || (dusmankonum3 == poziție) || (dusmankonum4 == poziție))) {// dacă forma noastră atinge forme inamice oyunbitti (); //jocul s-a terminat }
if (dusmaninYdekonumu> 42) {// dacă forma noastră scapă de dușmani
dusmanoldu = true; // ucide forme inamice skor ++; // măriți unul câte unul scorul}
// skora gore hizi artiriyoruz // mărește viteza în funcție de scor
if (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; întârziere (5); }
}
Pasul 4: COD BITMAP
Mai mult, trebuie să includeți grafica bitmap pentru forme. Trebuie să fie un fișier.c.
#include // include pentru funcția progmem
const unsigned char arac PROGMEM = {// forma noastră bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusmanAraci PROGMEM = {// bitmap navei inamice
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Pasul 5: Vă mulțumim pentru vizualizare
Înțelesul unor cuvinte:
Oyun => Joc
Arac => Formă
Dusman => Enemy
kontrol => control
Konum, Yer => Locație
Oyun Bitti => Joc terminat
Skor => Scor
Hiz => Viteză
Recomandat:
E-dohicky Versiunea electronică a măsuratorului de putere laser al lui Russ Dohicky: 28 de pași (cu imagini)
E-dohicky, versiunea electronică a dispozitivului de măsurare a puterii laser a lui Russ Dohicky: instrument electric cu laser. E-dohicky este versiunea electronică a dohicky de la Russ SADLER. Russ animă canalul foarte bun SarbarMultimedia YouTube https://www.youtube.com/watch?v=A-3HdVLc7nI&t=281sRuss SADLER prezintă un accesoriu ușor și ieftin
Realizarea unui robot simplu din lucrurile pe care le puteți găsi în casa dvs. (versiunea hotwheel): 5 pași
Realizarea unui robot simplu din lucrurile pe care le puteți găsi în casă (versiunea hotwheel): acest instructable vă va arăta cum să faceți un hotwheel care funcționează de la sine, care funcționează pe baterii dublu-A. Va trebui să folosiți doar lucruri pe care cel mai probabil le puteți găsi în casa dvs. Vă rugăm să rețineți că acest robot probabil nu va merge exact drept, un
Arduino Volt Meter (0-100V DC) - Versiunea 2 (mai bună): 3 pași
Arduino Volt Meter (0-100V DC) - Versiunea 2 (mai bună): În acest instructable, am construit un voltmetru pentru a măsura tensiuni ridicate DC (0-100v) cu o precizie relativă și precizie folosind un Arduino Nano și un ADS 1115 ADC .Aceasta este a doua versiune a voltmetrului folosit aici anterior instructabil: https: // ww
7 Segment Clock Versiunea 2: 4 pași
7 Segment Clock Versiunea 2: Bună! După o solicitare din partea utilizatorului Instructables privind disponibilitatea formatului de 12 ore, am profitat pentru a face modificări substanțiale proiectului original. În timpul utilizării versiunii 1 am simțit nevoia să fac o versiune autonomă, așa că am făcut posibil
Arduino Space Race Joc versiunea _1: 5 pași
Arduino Space Race Joc versiunea _1: Hei prieteni. Astăzi, îmi câștig, vă arăt cum puteți face un joc de curse spațiale cu ecran LCD5110 și joystic