2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
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
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
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
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.