Kazalo:

Floppy Bird: 3 koraki
Floppy Bird: 3 koraki

Video: Floppy Bird: 3 koraki

Video: Floppy Bird: 3 koraki
Video: Учебное пособие по Scratch 3.0: Как создать игру Flappy Bird в Scratch (часть 3) 2024, Julij
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

Danes bomo izdelovali igro s TFT LCD zaslonom. To bi izgledalo kot igra, ki je zelo priljubljena in jo veliko ljudi še vedno igra. Igra se imenuje Flappy Bird, vendar je ta igra nekoliko drugačna, ker je uporabniški vmesnik drugačen kot tudi način delovanja igre. To igro sem poimenoval Floppy Bird, ker bi to lahko povzročilo težave z avtorskimi pravicami. Kljub temu je to res zabavna igra in jo je enostavno narediti. Naredil sem to navodilo, ki vam bo omogočilo, da igro popolnoma naredite in deluje tako kot jaz. Če imate kakršna koli vprašanja, komentirajte spodaj in na ta vprašanja bom poskušal odgovoriti čim hitreje.

Zaloge

- Arduino Mega 2560 in kabel

- Mega ščit Arduino

- Arduino TFT LCD združljiv z Arduino Mega 2560

- SD kartice

1. korak: Sestavljanje TFT LCD zaslona

Sestavljanje TFT LCD
Sestavljanje TFT LCD

Zdaj lahko začnemo sestavljati TFT LCD. TFT LCD bomo priključili na ščit, zato najprej vzemite LCD TFT in ga v bistvu poravnajte z zatiči na ščitu. Ko poravnate zatiče, potisnite TFT LCD navzdol, da se namesti. Ko so vse glave zatičev v ščitu in če jih ne vidite, takrat veste, da je LCD TFT pravilno priključen. Nato lahko priključimo ščit na Arduino Mega 2560. Poravnajte zatiče ščita na Arduino Mega in ga priključite. Ko so vse glave zatičev v Arduinu Mega in ne vidite glave zatičev, to je ko veste, da je TFT LCD pravilno priključen in je pripravljen za vklop. Priključite Arduino, da preverite, ali ste LCD pravilno priključili, če se LCD vklopi in je zaslon bel, potem čestitam, uspešno ste priključili LCD TFT in zdaj je pripravljen za programiranje. Nazadnje imamo še eno stvar, to je, da kartico SD priključimo na LCD. Na zadnji strani TFT LCD je reža za kartico SD, kamor lahko preprosto priključite kartico SD. Zato ga samo priključite in končano.

2. korak: Programiranje TFT LCD

Programiranje TFT LCD
Programiranje TFT LCD

Zdaj bomo LCD programirali tako, da zažene igro in jo lahko predvajamo. Spodaj je koda, ki jo morate sestaviti in naložiti z uporabo Arduino IDE.

Težave, ki bi jih lahko imeli:

Spremenite parametre TFT LCD -ja glede na model, ki ga imate.

POPOLNA KODA:

#include #include #include

// ==== Ustvarjanje predmetov

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametre je treba prilagoditi modelu vašega zaslona/ščita URTouch myTouch (6, 5, 4, 3, 2);

// ==== Določanje pisav

extern uint8_t SmallFont ; zunanji uint8_t BigFont ; extern uint8_t SevenSegNumFont ;

zunanji nepodpisani int bird01 [0x41A]; // Bitna slika ptic

int x, y; // Spremenljivke za koordinate, kjer je bil pritisnjen 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 najvišji rezultat; logični zaslonPressed = false; boolean gameStarted = false;

void setup () {

// Začetek prikaza myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); najvišji rezultat = EEPROM.preberi (0); // Preberite najvišjo oceno iz EEPROM -a InitiateGame (); // Začni igro}

void loop () {

xP = xP-movingRate; // xP - x koordinata stebrov; obseg: 319 - (-51) drawPilars (xP, yP); // Nariše stebre // yB - y koordinato ptice, ki je odvisna od vrednosti padajoče spremenljivke yB+= fallRateInt; fallRate = fallRate+0,4; // Z vsakim vklopom se stopnja padca poveča, tako da lahko vplivamo na pospešek/ gravitacijo fallRateInt = int (fallRate); // Preveri trčenje if (yB> = 180 || yB <= 0) {// top in bottom gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// gameOver () zgornjega stebra; } if ((xP = 5) && (yB> = yP+60)) {// gameOver () spodnjega stebra; } // Nariše ptico drawBird (yB);

// Ko steber preide skozi zaslon

če (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) {// Nariše modri pravokotnik desno od stebra myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Nariše steber myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Nariše črni okvir stebra myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Nariše modri pravokotnik levo od stebra myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Spodnji steber

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); } // Nariše rezultat myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (rezultat, 100, 220); }

// ====== drawBird () - funkcija po meri

void drawBird (int y) {// Nariše ptico - bitna slika myGLCD.drawBitmap (50, y, 35, 30, bird01); // Nariše modre pravokotnike nad in pod ptico, da počisti njeno predhodno stanje myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Funkcija po meri void gameOver () {delay (3000); // 1 sekunda // Počisti zaslon in natisne besedilo myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTER, 40); myGLCD.print ("Ocena:", 100, 80); myGLCD.printNumI (rezultat, 200, 80); myGLCD.print ("Ponovni zagon …", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); zamuda (1000); myGLCD.printNumI (1, CENTER, 150); zamuda (1000); // Zapiše najvišji rezultat v EEPROM if (rezultat> najvišji rezultat) {najvišji rezultat = rezultat; EEPROM.write (0, najvišji rezultat); } // Ponastavi spremenljivke na začetne vrednosti položaja xP = 319; yB = 50; fallRate = 0; rezultat = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Znova zaženite igro InitiateGame (); }

3. korak: Končano

Končano!
Končano!

Naredili smo vezje in sestavili kodo. Zdaj moramo samo priključiti Arduino mega in igrati igro.

Tukaj imam povezavo do videoposnetka, ki prikazuje, kako ta igra deluje in kaj storiti, da jo nastavim:

drive.google.com/file/d/18hKQ8v2w2OkM_std-…

Sporočite mi, če imate težave spodaj.

Priporočena: