Sadržaj:

Floppy Bird: 3 koraka
Floppy Bird: 3 koraka

Video: Floppy Bird: 3 koraka

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

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

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

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 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

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

Preporučeni: