Sadržaj:

Floppy Bird: 3 koraka
Floppy Bird: 3 koraka

Video: Floppy Bird: 3 koraka

Video: Floppy Bird: 3 koraka
Video: Как поймать перо Жар-Птицы (мультфильм) 2024, Juli
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

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

Sklapanje TFT LCD -a
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

Programiranje TFT LCD -a
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

Gotovo!
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.

Preporučuje se: