Sisällysluettelo:

Floppy Bird: 3 vaihetta
Floppy Bird: 3 vaihetta

Video: Floppy Bird: 3 vaihetta

Video: Floppy Bird: 3 vaihetta
Video: Top Slim face exercise | How to get a Smaller Face, Lose cheek fat and get slimmer face fast. 2024, Heinäkuu
Anonim
Levyke lintu
Levyke lintu
Levyke lintu
Levyke lintu

Tänään teemme pelin TFT -nestekidenäytöllä. Tämä näyttäisi peliltä, joka on todella suosittu ja monet ihmiset pelaavat edelleen tätä peliä. Peli on nimeltään Flappy Bird, mutta tämä peli on hieman erilainen, koska käyttöliittymä on erilainen kuin peli toimii. Kutsuin tätä peliä Floppy Birdiksi, koska tämä voi johtaa tekijänoikeusongelmiin. Peli on kuitenkin todella hauska ja helppo tehdä. Olen tehnyt tämän ohjeellisen, jonka avulla voit tehdä pelin kokonaan ja saada sen toimimaan kuten minä. Jos sinulla on kysyttävää, kommentoi alle ja yritän vastata näihin kysymyksiin mahdollisimman nopeasti.

Tarvikkeet

- Arduino Mega 2560 ja kaapeli

- Arduino Mega Shield

- Arduino TFT LCD Yhteensopiva Arduino Mega 2560: n kanssa

- Sd-kortti

Vaihe 1: TFT -nestekidenäytön kokoaminen

TFT -nestekidenäytön kokoaminen
TFT -nestekidenäytön kokoaminen

Nyt voimme aloittaa TFT -nestekidenäytön kokoamisen. Yhdistämme TFT LCD -näytön suojaan, joten ota ensin TFT LCD ja kohdista se pohjimmiltaan kilven tappeihin. Kun olet kohdistanut nastat, työnnä TFT LCD -näyttö alas niin, että se sopii paikalleen. Kun kaikki nastanpäät ovat suojuksessa etkä näe nastanpäitä, tiedät, että TFT -nestekidenäyttö on kytketty oikein. Seuraavaksi voimme liittää suojuksen Arduino Mega 2560 -laitteeseen. Kohdista kilven tapit Arduino Mega -laitteeseen ja kytke se. kun tiedät, että TFT -nestekidenäyttö on kytketty oikein ja että se on valmis käynnistymään. Kytke Arduino ja tarkista, oletko liittänyt nestekidenäytön oikein, jos nestekidenäyttö käynnistyy ja näyttö on valkoinen, onnittelut, olet yhdistänyt TFT -nestekidenäytön ja nyt se on valmis ohjelmoitavaksi. Lopuksi meillä on yksi asia, joka on liittää SD -kortti nestekidenäyttöön. TFT -LCD -näytön takana on SD -korttipaikka, johon voit yksinkertaisesti liittää SD -kortin. Siksi kytke se vain ja se on valmis.

Vaihe 2: TFT -nestekidenäytön ohjelmointi

TFT -nestekidenäytön ohjelmointi
TFT -nestekidenäytön ohjelmointi

Nyt ohjelmoimme LCD -näytön niin, että se ajaa peliä ja voimme pelata sitä. Alla on koodi, joka sinun on käännettävä ja ladattava Arduino IDE: n avulla.

Ongelmia, joita sinulla saattaa olla:

Muuta TFT -nestekidenäytön parametreja käytetyn mallin mukaan.

TÄYDELLINEN KOODI:

#Sisällytä #Sisällytä #Sisällytä

// ==== Objektien luominen

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametrit tulee säätää Display/Shield -mallisi mukaan URTouch myTouch (6, 5, 4, 3, 2);

// ==== Fonttien määrittäminen

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

ulkoinen allekirjoittamaton int bird01 [0x41A]; // Lintujen bittikartta

int x, y; // Muuttujat koordinaateille, joissa näyttöä on painettu

// Floppy Bird

int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int pisteet = 0; int lastSpeedUpScore = 0; int korkein pisteet; boolean screenPressed = false; boolean gameStarted = false;

void setup () {

// Aloita näyttö myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); korkein pisteet = EEPROM.read (0); // Lue korkein pistemäärä EEPROM initiateGame (); // Aloita peli}

void loop () {

xP = xP-liikkuvuusnopeus; // xP - pilarien x -koordinaatti; alue: 319 - (-51) drawPilars (xP, yP); // Piirrä pylväät // linnun yB - y -koordinaatti, joka riippuu laskuarvon muuttujan arvosta yB+= fallRateInt; fallRate = fallRate+0,4; // Jokaisella lisäyksellä putoamisnopeus kasvaa niin, että voimme vaikuttaa kiihtyvyyden/ painovoiman laskuunRateInt = int (fallRate); // Tarkistaa törmäyksen, jos (yB> = 180 || yB <= 0) {// ylhäältä ja alhaalta gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// ylemmän pilarin peliOver (); } if ((xP = 5) && (yB> = yP+60)) {// alemman pilarin peliOver (); } // Piirrä linnun drawBird (yB);

// Kun pilari on kulkenut seulan läpi

jos (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) {// Piirtää sinisen suorakulmion myGLCD.setColor -pilarin oikealle puolelle (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Piirrä pilarin myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Piirrä pilarin musta kehys myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Piirrä sininen suorakulmio myGLCD.setColor -pilarin vasemmalle puolelle (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Alin pilari

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); } // Piirrä pisteet myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (pisteet, 100, 220); }

// ====== drawBird () - mukautettu toiminto

void drawBird (int y) {// Piirrä lintu - bittikartta myGLCD.drawBitmap (50, y, 35, 30, bird01); // Piirrä sinisiä suorakulmioita linnun ylä- ja alapuolelle tyhjentääkseen sen edellisen tilan myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - mukautettu toiminto void gameOver () {delay (3000); // 1 sekunti // Tyhjentää näytön ja tulostaa tekstin myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTER, 40); myGLCD.print ("Pisteet:", 100, 80); myGLCD.printNumI (pisteet, 200, 80); myGLCD.print ("Käynnistetään uudelleen …", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); viive (1000); myGLCD.printNumI (1, CENTER, 150); viive (1000); // Kirjoittaa EEPROMin korkeimman pistemäärän, jos (pisteet> korkein pisteet) {korkein pisteet = pisteet; EEPROM.write (0, korkein pisteet); } // Palauttaa muuttujat alkuasentoihin xP = 319; yB = 50; fallRate = 0; pisteet = 0; lastSpeedUpScore = 0; liikkuva nopeus = 3; gameStarted = epätosi; // Käynnistä peli uudelleen initiateGame (); }

Vaihe 3: Valmis

Tehty!
Tehty!

Olemme tehneet piirin ja koonneet koodin. Nyt meidän on vain kytkettävä Arduino -mega ja pelattava peliä.

Tässä on linkki videoon, joka näyttää, miten tämä peli toimii ja mitä tehdä sen asettamiseksi:

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

Kerro minulle, jos sinulla on ongelmia alla.

Suositeltava: