Tartalomjegyzék:

Floppy Bird: 3 lépés
Floppy Bird: 3 lépés

Videó: Floppy Bird: 3 lépés

Videó: Floppy Bird: 3 lépés
Videó: Я сделал игру Flappy Bird в 3D (Ж@ПА ГОРИТ И В 3D) 2024, November
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

Ma egy játékot készítünk TFT LCD -vel. Ez úgy néz ki, mint egy igazán népszerű játék, és még mindig sokan játszanak ezzel a játékkal. A játékot Flappy Bird -nek hívják, de ez a játék egy kicsit más, mert a felhasználói felület és a játékmód is más. Ezt a játékot Floppy Bird -nek neveztem, mivel ez szerzői jogi problémákhoz vezethet. Ennek ellenére nagyon szórakoztató játék, és könnyen elkészíthető. Ezt az oktathatóvá tettem, amely lehetővé teszi, hogy teljesen elkészítse a játékot, és úgy működjön, mint én. Ha bármilyen kérdése van, kérjük, írjon megjegyzést alább, és megpróbálok a lehető leggyorsabban válaszolni ezekre a kérdésekre.

Kellékek

- Arduino Mega 2560 és kábel

- Arduino Mega Shield

- Arduino TFT LCD kompatibilis az Arduino Mega 2560 készülékkel

- SD kártya

1. lépés: A TFT LCD összeszerelése

A TFT LCD összeszerelése
A TFT LCD összeszerelése

Most elkezdhetjük összeszerelni a TFT LCD -t. Csatlakoztatjuk a TFT LCD -t az árnyékoláshoz, ezért először vegyük a TFT LCD -t, és alapvetően igazítsuk a pajzson lévő csapokhoz. Miután beállította a csapokat, nyomja lefelé a TFT LCD -t, hogy a helyére illeszkedjen. Amikor az összes tűfej a pajzsban van, és nem látja a csapfejeket, akkor tudja, hogy a TFT LCD megfelelően van csatlakoztatva. Ezután csatlakoztathatjuk a pajzsot az Arduino Mega 2560 -hoz. Igazítsa a pajzs csapjait az Arduino Mega -hoz, és dugja be. Ha az összes csapfej az Arduino Mega -ban van, és nem látja a csapfejeket, akkor amikor tudja, hogy a TFT LCD megfelelően van csatlakoztatva, és készen áll a bekapcsolásra. Csatlakoztassa az Arduino -t, és ellenőrizze, hogy megfelelően csatlakoztatta -e az LCD -t, ha az LCD bekapcsol, és a képernyő fehér, akkor gratulálunk, sikeresen csatlakoztatta a TFT LCD -t, és most készen áll a programozásra. Végül egy dolgunk van: az SD -kártya csatlakoztatása az LCD -hez. A TFT LCD hátoldalán található egy SD kártyahely, ahová egyszerűen csatlakoztathatja az SD kártyát. Ezért csak csatlakoztassa és kész.

2. lépés: A TFT LCD programozása

A TFT LCD programozása
A TFT LCD programozása

Most beprogramozzuk az LCD -t, hogy futtassa a játékot, és játszhatunk vele. Az alábbiakban a kódot kell összeállítania és feltöltenie az Arduino IDE használatával.

Problémái lehetnek:

Módosítsa a TFT LCD paramétereit az adott modellnek megfelelően.

TELJES KÓD:

#befoglalni #befoglalni #befoglalni

// ==== Objektumok létrehozása

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // A paramétereket a Display/Shield URTouch myTouch (6, 5, 4, 3, 2) modellhez kell igazítani;

// ==== Betűtípusok meghatározása

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

extern unsigned int bird01 [0x41A]; // Madár Bitmap

int x, y; // A kijelző koordinátáinak változói

// Floppy Bird

int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int pontszám = 0; int lastSpeedUpScore = 0; int legmagasabb pontszám; boolean screenPressed = hamis; boolean gameStarted = false;

void setup () {

// myGLCD. InitLCD () megjelenítésének kezdeményezése; myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); legmagasabb pontszám = EEPROM.read (0); // Olvassa el az EEPROM initiateGame () legmagasabb pontszámát; // Kezdd el a játékot}

void loop () {

xP = xP-moveRate; // xP - a polárok x koordinátája; tartomány: 319 - (-51) drawPilars (xP, yP); // Megrajzolja a madár pilléreit // yB - y koordinátáját, amely a leesőRate változó értékétől függ yB+= fallRateInt; fallRate = fallRate+0,4; // Minden beavatkozásnál az esés mértéke növekszik, hogy képesek legyünk a gyorsulás/ gravitáció fallRateInt = int (fallRate) hatására; // Ellenőrzi az ütközést, ha (yB> = 180 || yB <= 0) {// felül és lent gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// felső pillér gameOver (); } if ((xP = 5) && (yB> = yP+60)) {// alsó pillér gameOver (); } // Rajzolja a madár drawBird (yB);

// Miután az oszlop áthaladt a képernyőn

ha (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) {// Kék téglalapot rajzol a myGLCD.setColor pillér jobbra (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Megrajzolja a myGLCD.setColor oszlopot (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Megrajzolja a myGLCD.setColor oszlop fekete keretét (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Megrajzolja a kék téglalapot a myGLCD.setColor pillér bal oldalán (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Az alsó pillér

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); } // felhívja a pontszámot myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (pontszám, 100, 220); }

// ====== drawBird () - Egyéni funkció

void drawBird (int y) {// Rajzolja a madarat - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Kék téglalapokat rajzol a madár fölé és alá, hogy tisztázza korábbi myGLCD.setColor állapotát (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Egyedi függvény void gameOver () {delay (3000); // 1 másodperc // Törli a képernyőt és kinyomtatja a szöveget myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTER, 40); myGLCD.print ("Pontszám:", 100, 80); myGLCD.printNumI (pontszám, 200, 80); myGLCD.print ("Újraindítás …", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); késleltetés (1000); myGLCD.printNumI (1, CENTER, 150); késleltetés (1000); // A legmagasabb pontszámot írja az EEPROM -ban, ha (pontszám> legmagasabb pontszám) {legmagasabb pontszám = pontszám; EEPROM.write (0, legmagasabb pontszám); } // Visszaállítja a változókat a kezdőpozíció értékére xP = 319; yB = 50; fallRate = 0; pontszám = 0; lastSpeedUpScore = 0; mozgó arány = 3; gameStarted = hamis; // A játék újraindítása initiateGame (); }

3. lépés: Kész

Kész!
Kész!

Elkészítettük az áramkört és összeállítottuk a kódot. Most csak csatlakoztatnunk kell az Arduino mega -t, és játszanunk kell.

Itt van egy linkem egy videóhoz, amely bemutatja, hogyan működik ez a játék, és mit kell tennie annak beállításához:

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

Tudassa velem, ha bármilyen problémája van lent.

Ajánlott: