Obsah:

Floppy Bird: 3 kroky
Floppy Bird: 3 kroky

Video: Floppy Bird: 3 kroky

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

Dnes budeme hrať hru pomocou TFT LCD. Vyzeralo by to ako hra, ktorá je skutočne populárna a stále ju hrá veľa ľudí. Hra sa nazýva Flappy Bird, ale táto hra je trochu odlišná, pretože používateľské rozhranie je odlišné aj od toho, ako hra funguje. Túto hru som nazval Floppy Bird, pretože by to mohlo viesť k problémom s autorskými právami. Napriek tomu je to veľmi zábavná hra a jej výroba je jednoduchá. Urobil som tento návod, ktorý vám umožní úplne dokončiť hru a fungovať tak, ako som to robil ja. Ak máte otázky, napíšte ich nižšie a ja sa pokúsim na tieto otázky odpovedať čo najskôr.

Zásoby

- Arduino Mega 2560 a kábel

- Mega štít Arduino

- Arduino TFT LCD kompatibilný s Arduino Mega 2560

- SD karta

Krok 1: Zostavenie TFT LCD

Zostavenie TFT LCD
Zostavenie TFT LCD

Teraz môžeme začať montovať TFT LCD. Pripojíme TFT LCD k štítu, takže najskôr vezmite TFT LCD a v zásade ho zarovnajte s kolíkmi na štíte. Akonáhle zarovnáte kolíky, zatlačte TFT LCD nadol, aby zapadol na svoje miesto. Keď sú všetky kolíkové hlavy v štíte a nemôžete ich vidieť, vtedy viete, že je TFT LCD správne pripojený. Ďalej môžeme štít zapojiť do Arduino Mega 2560. Zarovnajte kolíky štítu na Arduino Mega a zapojte ho. Keď sú všetky kolíkové hlavy v Arduino Mega a nevidíte hlavy kolíkov, to je keď viete, že je TFT LCD správne pripojený a je pripravený na zapnutie. Zapojte Arduino a zistite, či ste LCD správne pripojili, ak sa LCD zapne a obrazovka je biela, potom gratulujeme, úspešne ste pripojili TFT LCD a teraz je pripravený na programovanie. Nakoniec musíme urobiť jednu vec, a tou je pripojenie karty SD k LCD. Na zadnej strane displeja TFT LCD je slot pre kartu SD, do ktorého môžete kartu SD jednoducho zapojiť. Preto stačí zapojiť a je hotovo.

Krok 2: Programovanie TFT LCD

Programovanie TFT LCD
Programovanie TFT LCD

Teraz naprogramujeme LCD tak, aby spustilo hru a mohli sme ju hrať. Nasleduje kód, ktorý musíte skompilovať a nahrať pomocou Arduino IDE.

Problémy, ktoré môžete mať:

Zmeňte parametre TFT LCD podľa modelu, ktorý máte.

KOMPLETNÝ KÓD:

#include #include #include

// ==== Vytváranie objektov

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametre by mali byť prispôsobené vášmu modelu displeja/štítu URTouch myTouch (6, 5, 4, 3, 2);

// ==== Definovanie písiem

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

externý bez znamienka int bird01 [0x41A]; // Vtáčí bitmapa

int x, y; // Premenné pre súradnice, kde bolo stlačené zobrazenie

// Floppy Bird

int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; int skóre = 0; int lastSpeedUpScore = 0; int najvyššie skóre; boolean screenPressed = false; boolean gameStarted = false;

neplatné nastavenie () {

// Spustenie zobrazenia myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); najvyššie skóre = EEPROM.read (0); // Prečítajte si najvyššie skóre z EEPROM initiateGame (); // Spustenie hry}

prázdna slučka () {

xP = xP-movingRate; // xP - x súradnica pilarov; rozsah: 319 - (-51) drawPilars (xP, yP); // Nakreslí piliere // yB - y súradnica vtáka, ktorá závisí od hodnoty premennej klesajúcej rýchlosti yB+= fallRateInt; fallRate = fallRate+0,4; // Každou inetráciou sa rýchlosť pádu zvyšuje, aby sme mohli ovplyvniť zrýchlenie/ gravitáciu fallRateInt = int (fallRate); // Kontroluje kolíziu, ak (yB> = 180 || yB <= 0) {// horná a dolná časť gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// horný pilier gameOver (); } if ((xP = 5) && (yB> = yP+60)) {// nižší pilier gameOver (); } // Nakreslí vták drawBird (yB);

// Potom, čo stĺp prejde obrazovkou

ak (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) {// Nakreslí modrý obdĺžnik vpravo od stĺpika myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Nakreslí pilier myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Nakreslí čierny rám piliera myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Nakreslí modrý obdĺžnik vľavo od stĺpika myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Spodný stĺp

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); } // Nakreslí skóre myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (skóre, 100, 220); }

// ====== drawBird () - vlastná funkcia

void drawBird (int y) {// Nakreslí vtáka - bitmapový myGLCD.drawBitmap (50, y, 35, 30, bird01); // Nakreslí modré obdĺžniky nad a pod vtákom, aby vyčistil jeho predchádzajúci stav myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - vlastná funkcia neplatná gameOver () {oneskorenie (3000); // 1 sekunda // Vymaže obrazovku a vytlačí text myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print („HRA NAD“, CENTRUM, 40); myGLCD.print ("Skóre:", 100, 80); myGLCD.printNumI (skóre, 200, 80); myGLCD.print („Reštartuje sa…“, CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTRUM, 150); oneskorenie (1000); myGLCD.printNumI (1, CENTRUM, 150); oneskorenie (1000); // Zapíše najvyššie skóre v EEPROM, ak (skóre> najvyššie skóre) {najvyššie skóre = skóre; EEPROM.write (0, najvyššie skóre); } // Resetuje premenné na počiatočné hodnoty polohy xP = 319; yB = 50; fallRate = 0; skóre = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Reštartujte hru initiateGame (); }

Krok 3: Hotovo

Hotový!
Hotový!

Vytvorili sme obvod a skompilovali kód. Teraz stačí zapojiť mega Arduino a hrať hru.

Tu mám odkaz na video, ktoré ukazuje, ako táto hra funguje a čo treba urobiť, aby ste ju nastavili:

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

Dajte mi vedieť, ak máte nižšie problémy.

Odporúča: