Satura rādītājs:
Video: Floppy Bird: 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Š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
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
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
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:
Floppy Disk IR kameras uzlaušana: 8 soļi (ar attēliem)
Floppy Disk IR Camera Hack: Pēdējo septiņu gadu laikā man ir salauzta digitālā kamera. Tas joprojām spēj uzņemt attēlus, taču to ir gandrīz neiespējami izmantot, ja ekrāns ir bojāts. Pamatproblēma ir tā, ka dažreiz ēdienkarte nejauši tiek parādīta
Animatronic Bird: 3 soļi
Animatronic Bird: Šis Animatonic sākotnēji bija TSA (tehnoloģiju studentu asociācijas) projekts. Mums bija jāizveido animatronika un jāpaskaidro, kā tā darbojas, parādot vadības elektroniku
Pocket Flappy Bird Game Machine: 5 soļi
Pocket Flappy Bird Game Machine: Šī ir uz mikrokontrolleru balstīta spēļu konsole nodemcu esp8266, kas var spēlēt flappy bird un daudzas citas spēles. Šo mašīnu var izmantot arī, lai izveidotu deauther, pamatojoties uz spacehuhns kodu vietnē https://github.com/SpacehuhnTech/esp8266_deauther
SD/MMC iederas Floppy Edge savienotājā: 8 soļi (ar attēliem)
SD/MMC iederas Floppy Edge savienotājā: varat pievienot SD kameras atmiņas karti jebkuram mājās gatavotam DIY projektam, kuram ir dažas I/O tapas, izmantojot parastos savienotājus, kas jums, iespējams, pašlaik ir. Lai iegūtu sīkāku informāciju, kā iegūt bezmaksas mmc ierīču draiverus un dažādu atvērtā pirmkoda Linux distr. instalēšanu
Floppy Drive glābšana: 3 soļi
Floppy Drive Salvage: Es to rakstu, jo gribēju sākt darboties ar pakāpju motoriem, un es zināju, ka manā neizmantotajā disketē ir tāds. Es nesen izlasīju rakstu par peļu daļu glābšanu http://hackaday.com/2008/05/16/how-to-scavenge-a-mouse-for-parts/I th