Turinys:

Floppy Bird: 3 žingsniai
Floppy Bird: 3 žingsniai

Video: Floppy Bird: 3 žingsniai

Video: Floppy Bird: 3 žingsniai
Video: Я сделал игру Flappy Bird в 3D (Ж@ПА ГОРИТ И В 3D) 2024, Liepa
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

Šiandien mes žaisime žaidimą naudodami TFT LCD. Tai atrodytų kaip žaidimas, kuris yra tikrai populiarus ir daugelis žmonių vis dar žaidžia šį žaidimą. Žaidimas vadinamas „Flappy Bird“, tačiau šis žaidimas yra šiek tiek kitoks, nes skiriasi vartotojo sąsaja ir žaidimo būdas. Aš pavadinau šį žaidimą „Floppy Bird“, nes tai gali sukelti autorių teisių problemų. Nepaisant to, tai tikrai įdomus žaidimas ir jį lengva padaryti. Aš padariau tai pamokomą, kuri leis jums visiškai sukurti žaidimą ir priversti jį veikti taip, kaip aš. Jei turite kokių nors klausimų, prašome komentuoti žemiau ir aš pasistengsiu kuo greičiau atsakyti į šiuos klausimus.

Prekės

- „Arduino Mega 2560“ir kabelis

- „Arduino Mega Shield“

- „Arduino TFT LCD“suderinamas su „Arduino Mega 2560“

- SD kortelė

1 žingsnis: TFT LCD surinkimas

TFT LCD surinkimas
TFT LCD surinkimas

Dabar galime pradėti montuoti TFT LCD ekraną. Mes prijungsime TFT skystųjų kristalų ekraną prie skydo, todėl pirmiausia paimkite TFT skystųjų kristalų ekraną ir iš esmės sulygiuokite jį su skydo kaiščiais. Sureguliavę kaiščius, paspauskite TFT LCD ekraną žemyn, kad jis tilptų į vietą. Kai visos kaiščių galvutės yra skydelyje ir nematote kaiščių galvutės, tada žinote, kad TFT LCD yra tinkamai prijungtas. Tada galime prijungti skydą prie „Arduino Mega 2560“. Išlygiuokite skydo kaiščius ant „Arduino Mega“ir prijunkite jį. Kai visos kaiščių galvutės yra „Arduino Mega“ir jūs nematote kaiščių galvutės, tai kai žinote, kad TFT LCD yra tinkamai prijungtas ir paruoštas įjungti. Prijunkite „Arduino“, kad pamatytumėte, ar tinkamai prijungėte skystųjų kristalų ekraną, jei LCD įjungiamas ir ekranas yra baltas, tada sveikiname, sėkmingai prijungėte TFT skystųjų kristalų ekraną ir dabar jis paruoštas užprogramuoti. Galiausiai turime padaryti vieną dalyką - prijungti SD kortelę prie LCD. TFT LCD gale yra SD kortelės lizdas, kuriame galite tiesiog prijungti SD kortelę. Todėl tiesiog prijunkite jį ir viskas.

2 žingsnis: TFT LCD programavimas

TFT LCD programavimas
TFT LCD programavimas

Dabar mes užprogramuosime LCD, kad jis paleistų žaidimą ir galėtume jį žaisti. Žemiau yra kodas, kurį turite surinkti ir įkelti naudodami „Arduino IDE“.

Gali kilti problemų:

Pakeiskite TFT LCD parametrus pagal turimą modelį.

PILNAS KODAS:

#įtraukti #įtraukti #įtraukti

// ==== Objektų kūrimas

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametrai turi būti pritaikyti jūsų ekrano/skydo modeliui URTouch myTouch (6, 5, 4, 3, 2);

// ==== Šriftų apibrėžimas

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

extern unsigned int bird01 [0x41A]; // Paukščių bitkartė

int x, y; // Kintamieji koordinatėms, kuriose buvo paspaustas ekranas

// Floppy Bird

int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int rezultatas = 0; int lastSpeedUpScore = 0; int didžiausias balas; loginis ekranasSpaustas = klaidingas; loginis žaidimasStarted = false;

void setup () {

// Pradėti rodyti myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); aukščiausias balas = EEPROM.read (0); // Skaityti aukščiausią rezultatą iš EEPROM initiateGame (); // Inicijuoti žaidimą}

void loop () {

xP = xP-judantis greitis; // xP - x polių koordinatė; diapazonas: 319 - (-51) drawPilars (xP, yP); // Nubrėžia stulpus // yB - y paukščio koordinatę, kuri priklauso nuo kritimo vertės kintamojo reikšmės yB+= fallRateInt; kritimo greitis = kritimo greitis+0,4; // Kiekvienas įterpimas kritimo greičio padidėjimas, kad galėtume pagreičio/ gravitacijos kritimo poveikįRateInt = int (fallRate); // Tikrina susidūrimą, jei (yB> = 180 || yB <= 0) {// žaidimo viršuje ir apačiojeOver (); } if ((xP = 5) && (yB <= yP-2)) {// viršutinio ramsčio žaidimasOver (); } if ((xP = 5) && (yB> = yP+60)) {// apatinio ramsčio žaidimasOver (); } // Piešia paukštį drawBird (yB);

// Po to, kai stulpas praėjo per ekraną

jei (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) {// Nubrėžia mėlyną stačiakampį ties kolona myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Nubrėžia stulpą myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Nubrėžia juodą kolonos myGLCD.setColor rėmelį (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Piešia mėlyną stačiakampį kairėje nuo kolonos myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Apatinis stulpas

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); } // Nubrėžia rezultatą myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (balas, 100, 220); }

// ====== drawBird () - pasirinktinė funkcija

void drawBird (int y) {// Piešia paukštį - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Nubrėžia mėlynus stačiakampius virš ir žemiau paukščio, kad išvalytų ankstesnę būseną myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Custom Function void gameOver () {delay (3000); // 1 sekundė // Išvalo ekraną ir išspausdina tekstą myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print („ŽAIDIMO PABAIGA“, CENTRAS, 40); myGLCD.print („Rezultatas:“, 100, 80); myGLCD.printNumI (balas, 200, 80); myGLCD.print („Paleidžiama iš naujo …“, CENTRAS, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTRAS, 150); vėlavimas (1000); myGLCD.printNumI (1, CENTRAS, 150); vėlavimas (1000); // Parašo aukščiausią balą EEPROM, jei (balas> aukščiausias rezultatas) {aukščiausias rezultatas = balas; EEPROM.write (0, aukščiausias rezultatas); } // Nustato kintamuosius į pradinės padėties reikšmes xP = 319; yB = 50; FallRate = 0; balas = 0; lastSpeedUpScore = 0; judantis greitis = 3; gameStarted = false; // Iš naujo paleisti žaidimą initiateGame (); }

3 žingsnis: padaryta

Padaryta!
Padaryta!

Mes sukūrėme grandinę ir sudarėme kodą. Dabar mes tiesiog turime prijungti „Arduino mega“ir žaisti žaidimą.

Čia turiu nuorodą į vaizdo įrašą, kuriame parodyta, kaip šis žaidimas veikia ir ką reikia padaryti jį nustatant:

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

Leiskite man žinoti, jei turite kokių nors problemų žemiau.

Rekomenduojamas: