Satura rādītājs:

Floppy Bird: 3 soļi
Floppy Bird: 3 soļi

Video: Floppy Bird: 3 soļi

Video: Floppy Bird: 3 soļi
Video: Can AI code Flappy Bird? Watch ChatGPT try 2024, Jūlijs
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

Šodien mēs veidosim spēli, izmantojot TFT LCD. Šī izskatītos pēc spēles, kas ir patiešām populāra, un daudzi cilvēki joprojām spēlē šo spēli. Spēli sauc par Flappy Bird, taču šī spēle ir nedaudz atšķirīga, jo lietotāja interfeiss ir atšķirīgs, kā arī spēles veids. Es nosaucu šo spēli par Floppy Bird, jo tas var radīt autortiesību problēmas. Tomēr tā ir patiešām jautra spēle, un to ir viegli izgatavot. Esmu padarījis šo pamācāmo, kas ļaus jums pilnībā izveidot spēli un likt tai darboties tāpat kā es. Ja jums ir kādi jautājumi, lūdzu, komentējiet zemāk, un es centīšos pēc iespējas ātrāk atbildēt uz šiem jautājumiem.

Piegādes

- Arduino Mega 2560 un kabelis

- Arduino Mega vairogs

- Arduino TFT LCD savietojams ar Arduino Mega 2560

- SD karte

1. darbība: TFT LCD montāža

TFT LCD montāža
TFT LCD montāža

Tagad mēs varam sākt montēt TFT LCD. Mēs savienosim TFT LCD ar vairogu, tāpēc vispirms paņemiet TFT LCD un būtībā izlīdziniet to ar tapām uz vairoga. Kad tapas ir izlīdzinātas, nospiediet TFT LCD uz leju, lai tas būtu vietā. Kad visas tapu galviņas atrodas vairogā un jūs nevarat redzēt tapu galviņas, tad jūs zināt, ka TFT LCD ir pievienots pareizi. Tālāk mēs varam pieslēgt vairogu Arduino Mega 2560. Izlīdziniet vairoga tapas uz Arduino Mega un pievienojiet to. kad zināt, ka TFT LCD ir pievienots pareizi un ir gatavs ieslēgšanai. Pievienojiet Arduino, lai redzētu, vai esat pareizi pievienojis LCD, ja LCD ieslēdzas un ekrāns ir balts, tad apsveicam, jūs esat veiksmīgi pievienojis TFT LCD un tagad tas ir gatavs programmēšanai. Visbeidzot, mums ir jādara viena lieta - savienot SD karti LCD ekrānā. TFT LCD aizmugurē ir SD kartes slots, kurā varat vienkārši pievienot SD karti. Tāpēc vienkārši pievienojiet to un tas ir izdarīts.

2. solis: TFT LCD programmēšana

TFT LCD programmēšana
TFT LCD programmēšana

Tagad mēs ieprogrammēsim LCD, lai tā palaistu spēli, un mēs varam to spēlēt. Zemāk ir kods, kas jums jāapkopo un jāaugšupielādē, izmantojot Arduino IDE.

Problēmas, kas jums varētu rasties:

Mainiet TFT LCD parametrus atbilstoši jūsu modelim.

PILNĪGS KODS:

#iekļaut #iekļaut #iekļaut

// ==== Objektu izveide

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametri jāpielāgo jūsu displeja/vairoga modelim URTouch myTouch (6, 5, 4, 3, 2);

// ==== Fontu definēšana

extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ;

extern unsigned int bird01 [0x41A]; // Putnu bitkarte

int x, y; // Mainīgie lielumi koordinātām, kurās ir nospiests displejs

// Floppy Bird

int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; pludiņa kritumsRate = 0; int rezultāts = 0; int lastSpeedUpScore = 0; int highScore; Būla ekrāns Pressed = false; Būla spēleStarted = false;

void setup () {

// Uzsākt displeju myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); augstākais rādītājs = EEPROM.lasījums (0); // Lasīt augstāko punktu skaitu no EEPROM initiateGame (); // Sākt spēli}

void loop () {

xP = xP-moveRate; // xP - x polāru koordināta; diapazons: 319 - (-51) drawPilars (xP, yP); // Zīmē pīlārus // yB - y koordinātu putnam, kas ir atkarīgs no krišanas ātruma mainīgā lieluma yB+= fallRateInt; kritumsRate = kritumsRate+0,4; // Katrs ievads kritiena ātruma pieaugums, lai mēs varētu paātrinājuma/ gravitācijas krituma ietekmiRateInt = int (fallRate); // Pārbauda sadursmi, ja (yB> = 180 || yB <= 0) {// augšējā un apakšējā spēleOver (); } if ((xP = 5) && (yB <= yP-2)) {// augšējā pīlāra spēleOver (); } if ((xP = 5) && (yB> = yP+60)) {// apakšējā pīlāra spēleOver (); } // Zīmē putnu drawBird (yB);

// Pēc tam, kad pīlārs ir izgājis cauri ekrānam

ja (xPRESET = 250) && (x = 0) && (y = 0) && (x = 30) && (y = 270) {myGLCD.setColor (0, 200, 20); myGLCD.fillRect (318, 0, x, y-1); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, 0, x-1, y);

myGLCD.setColor (0, 200, 20);

myGLCD.fillRect (318, y+81, x, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, y+80, x-1, 204); } else if (x <= 268) {// Zīmē zilu taisnstūri pa labi no pīlāra myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Uzzīmē pīlāru myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Uzzīmē pīlāra melno rāmi myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Zīmē zilo taisnstūri pa kreisi no pīlāra myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Apakšējais pīlārs

myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, y+80, x+60, 204); myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, y+81, x+1, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, y+80, x, 204); myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, y+80, x-3, 204); } // Uzzīmē rezultātu myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (rezultāts, 100, 220); }

// ====== drawBird () - pielāgota funkcija

void drawBird (int y) {// Zīmē putnu - bitkarte myGLCD.drawBitmap (50, y, 35, 30, bird01); // Zīmē zilus taisnstūrus virs un zem putna, lai notīrītu tā iepriekšējo stāvokli myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Custom Function void gameOver () {delay (3000); // 1 sekunde // Notīra ekrānu un izdrukā tekstu myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTRS, 40); myGLCD.print ("Rezultāts:", 100, 80); myGLCD.printNumI (rezultāts, 200, 80); myGLCD.print ("Restarting …", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTRS, 150); kavēšanās (1000); myGLCD.printNumI (1, CENTRS, 150); kavēšanās (1000); // Uzraksta EEPROM augstāko punktu skaitu, ja (score> bestScore) {highScore = score; EEPROM.write (0, augstākais rādītājs); } // Atiestata mainīgos uz sākuma pozīcijas vērtībām xP = 319; yB = 50; kritumsRate = 0; rezultāts = 0; lastSpeedUpScore = 0; MovingRate = 3; gameStarted = nepatiess; // Restartējiet spēli initiateGame (); }

3. solis: Gatavs

Gatavs!
Gatavs!

Mēs esam izveidojuši ķēdi un apkopojuši kodu. Tagad mums vienkārši jāpievieno Arduino mega un jāspēlē spēle.

Šeit man ir saite uz videoklipu, kurā parādīts, kā šī spēle darbojas un kas jādara, lai to iestatītu:

drive.google.com/file/d/18hKQ8v2w2OkM_std-…

Paziņojiet man, ja jums ir kādas problēmas zemāk.

Ieteicams: