2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Danas ćemo raditi igru koristeći TFT LCD. Ovo bi izgledalo kao igra koja je jako popularna i mnogi ljudi još uvijek igraju ovu igru. Igra se zove Flappy Bird, ali ova igra je malo drugačija jer je korisničko sučelje drugačije, kao i način na koji igra radi. Nazvao sam ovu igru Floppy Bird jer bi to moglo dovesti do problema s autorskim pravima. Ipak, to je jako zabavna igra i lako ju je napraviti. Napravio sam ovo uputstvo koje će vam omogućiti da igru učinite u potpunosti i učinite je kao ja. Ako imate bilo kakvih pitanja, komentirajte dolje, a ja ću pokušati odgovoriti na ova pitanja što je brže moguće.
Pribor
- Arduino Mega 2560 i kabel
- Arduino Mega štit
- Arduino TFT LCD kompatibilan s Arduino Mega 2560
- SD kartica
Korak 1: Sklapanje TFT LCD -a
Sada možemo početi sastavljati TFT LCD. Spojit ćemo TFT LCD na štit, pa prvo uzmite TFT LCD i u osnovi ga poravnajte s pinovima na štitu. Nakon što poravnate pinove, pritisnite TFT LCD prema dolje tako da sjedne na mjesto. Kad su sve pin -glave u štitu i ne vidite ih, tada znate da je TFT LCD pravilno spojen. Zatim možemo spojiti štit na Arduino Mega 2560. Poravnajte pinove štita na Arduino Megi i uključite ih. Kad su sve pin -glave u Arduino Mega -i, a vi ne vidite pin -glave, to je kad znate da je TFT LCD pravilno spojen i spreman za uključivanje. Priključite Arduino da vidite jeste li pravilno spojili LCD, ako se LCD uključuje i zaslon je bijel, a zatim čestitam, uspješno ste povezali TFT LCD i sada je spreman za programiranje. Na kraju, imamo jednu stvar za učiniti, a to je spojiti SD karticu na LCD. Na stražnjoj strani TFT LCD -a nalazi se utor za SD karticu u koji možete jednostavno priključiti SD karticu. Stoga ga samo priključite i gotovo je.
Korak 2: Programiranje TFT LCD -a
Sada ćemo programirati LCD tako da pokreće igru i možemo je igrati. Ispod je kôd koji morate sastaviti i prenijeti pomoću Arduino IDE -a.
Problemi koje biste mogli imati:
Promijenite parametre TFT LCD -a prema modelu koji imate.
CJELOVNI KOD:
#include #include #include
// ==== Stvaranje objekata
UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametre treba prilagoditi vašem modelu zaslona/štita URTouch myTouch (6, 5, 4, 3, 2);
// ==== Definiranje fontova
extern uint8_t SmallFont ; vanjski uint8_t BigFont ; extern uint8_t SevenSegNumFont ;
vanjski nepotpisani int bird01 [0x41A]; // Bitmapa ptica
int x, y; // Varijable za koordinate na kojima je pritisnut zaslon
// Floppy Bird
int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; int rezultat = 0; int lastSpeedUpScore = 0; int mostScore; boolean screenPressed = false; boolean gameStarted = false;
void setup () {
// Pokretanje prikaza myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); najveća ocjena = EEPROM.čitano (0); // Očitajte najveći rezultat iz EEPROM -a InitiateGame (); // Pokreni igru}
void loop () {{100} {101}
xP = xP-movingRate; // xP - x koordinata stupova; raspon: 319 - (-51) drawPilars (xP, yP); // Crta stupove // yB - y koordinatu ptice koja ovisi o vrijednosti padajuće varijable yB+= fallRateInt; fallRate = fallRate+0,4; // Svakim umetanjem stopa pada povećava se tako da možemo utjecati na ubrzanje/ gravitaciju fallRateInt = int (fallRate); // Provjerava sudar if (yB> = 180 || yB <= 0) {// vrh i dno gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// gameOver (); } if ((xP = 5) && (yB> = yP+60)) {// gameOver (); } // Crta pticu drawBird (yB);
// Nakon što je stup prošao kroz zaslon
if (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) {// Crta plavi pravokutnik desno od stupa myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Crta stup myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Crta crni okvir stupa myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Crta plavi pravokutnik lijevo od stupa myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);
// Donji stup
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); } // Izvlači rezultat myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (rezultat, 100, 220); }
// ====== drawBird () - Prilagođena funkcija
void drawBird (int y) {// Crta pticu - bitmapa myGLCD.drawBitmap (50, y, 35, 30, bird01); // Crta plave pravokutnike iznad i ispod ptice kako bi očistio njezino prethodno stanje myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Prilagođena funkcija void gameOver () {delay (3000); // 1 sekunda // Briše zaslon i ispisuje tekst myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTAR, 40); myGLCD.print ("Bodovi:", 100, 80); myGLCD.printNumI (rezultat, 200, 80); myGLCD.print ("Ponovno pokretanje …", CENTAR, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTAR, 150); kašnjenje (1000); myGLCD.printNumI (1, CENTAR, 150); kašnjenje (1000); // Zapisuje najveći rezultat u EEPROM -u ako (rezultat> najviši rezultat) {najviši rezultat = rezultat; EEPROM.write (0, najveći rezultat); } // Vraća varijable na početne vrijednosti položaja xP = 319; yB = 50; fallRate = 0; rezultat = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Ponovno pokretanje igre initiateGame (); }
Korak 3: Gotovo
Napravili smo sklop i sastavili kod. Sada moramo samo priključiti Arduino mega i igrati igru.
Evo, imam vezu do videozapisa koji prikazuje kako ova igra radi i što učiniti kako bi je postavili:
drive.google.com/file/d/18hKQ8v2w2OkM_std-…
Javite mi ako imate problema dolje.