2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Danas ćemo raditi igru koristeći TFT LCD. Ovo bi izgledalo kao igra koja je zaista 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 različito, kao i način na koji igra radi. Ovu igru sam nazvao Floppy Bird jer bi to moglo dovesti do problema s autorskim pravima. Ipak, to je zaista 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 da radi kao ja. Ako imate bilo kakvih pitanja, molimo vas da komentarišete ispod i ja ću pokušati odgovoriti na ova pitanja što je brže moguće.
Supplies
- Arduino Mega 2560 i kabel
- Arduino Mega Shield
- Arduino TFT LCD kompatibilan sa Arduino Mega 2560
- Sd kartica
Korak 1: Sklapanje TFT LCD -a
Sada možemo početi sa sastavljanjem TFT LCD -a. Spojit ćemo TFT LCD na štit, pa prvo uzmite TFT LCD i u osnovi ga poravnajte s pinovima na štitu. Nakon što poravnate pinove, gurnite 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 povezan. Zatim možemo spojiti štit na Arduino Mega 2560. Poravnajte pinove štita na Arduino Megi i uključite ih. Kada su sve pin -glave u Arduino Mega -i i ne možete vidjeti pin -glave, to je kada znate da je TFT LCD pravilno povezan i spreman za uključivanje. Priključite Arduino da vidite jeste li pravilno povezali LCD, ako se LCD uključuje i ekran 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 učitati pomoću Arduino IDE -a.
Problemi koje biste mogli imati:
Promijenite parametre TFT LCD -a prema modelu koji imate.
KOMPLETAN KOD:
#include #include #include
// ==== Kreiranje objekata
UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametre treba prilagoditi vašem modelu ekrana/štita URTouch myTouch (6, 5, 4, 3, 2);
// ==== Definiranje fontova
extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ;
vanjski nepotpisani int bird01 [0x41A]; // Bitmap ptica
int x, y; // Varijable za koordinate na kojima je zaslon pritisnut
// 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ći rezultat = EEPROM.čitano (0); // Očitajte najveći rezultat iz EEPROM -a InitiateGame (); // Pokreni igru}
void loop () {{100} {101}
xP = xP-movingRate; // xP - x koordinata stubova; raspon: 319 - (-51) drawPilars (xP, yP); // Crta stubove // yB - y koordinatu ptice koja ovisi o vrijednosti padajuće varijable yB+= fallRateInt; fallRate = fallRate+0,4; // Svakim umetanjem stopa pada se povećava tako da možemo utjecati na ubrzanje/ gravitaciju fallRateInt = int (fallRate); // Provjerava koliziju 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 stub prošao kroz ekran
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) {// Nacrta plavi pravokutnik desno od stuba 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 stuba myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Crta plavi pravokutnik lijevo od stuba myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);
// Donji stub
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 njeno 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 ekran 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 ("Score:", 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 if (rezultat> najveć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 kolo i sastavili kod. Sada moramo samo priključiti Arduino mega i igrati igru.
Evo, imam vezu do videa koji prikazuje kako ova igra funkcionira i šta treba učiniti kako bi je postavili:
drive.google.com/file/d/18hKQ8v2w2OkM_std-…
Javite mi ako imate problema dolje.