Turinys:
Video: Floppy Bird: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Š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
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
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
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:
„Bird House“garsiakalbiai: 5 žingsniai
Paukščių namų pranešėjai: Mano šeima daug laiko praleidžia kieme žiūrėdama filmus, rengdama vakarėlius ir mėgaudamasi diena. Pastebėjau, kad daug vilkiu radijo imtuvus ir garsiakalbius. Žinoma, yra geresnis sprendimas. Mano tikslas buvo turėti nuolatinę lauko sistemą su
Animatronic Bird: 3 žingsniai
Animatronic Bird: Šis Animatonic iš pradžių buvo TSA (technologijų studentų asociacijos) projektas. Turėjome sukurti animatroniką ir paaiškinti, kaip ji veikia, parodant valdymo elektroniką
„Apple II Floppy Hackintosh I7-7700 3.6Ghz“: 7 žingsniai
„Apple II Floppy Hackintosh I7-7700 3.6Ghz“: šis pirmasis vaizdas skirtas nuoroda į nesugadintą diską (su originaliu vaivorykštiniu „Apple“logotipu). Antrasis vaizdas yra vidinis, aš pamiršau nufotografuoti prieš jį išardydamas, todėl mandagiai „Goog“
SD/MMC tinka „Floppy Edge“jungčiai: 8 žingsniai (su paveikslėliais)
SD/MMC tinka „Floppy Edge“jungčiai: SD fotoaparato atminties kortelę galite prijungti prie bet kurio namų gamybos „pasidaryk pats“projekto, kuriame yra keli įvesties/išvesties kaiščiai, naudodami įprastas jungtis, kurias tikriausiai turite dabar. Norėdami gauti daugiau informacijos, kaip gauti nemokamą mmc įrenginių tvarkykles ir įvairių atviro kodo „Linux“distr
„Floppy Drive“gelbėjimas: 3 žingsniai
„Floppy Drive Salvage“: rašau tai, nes norėjau pradėti lakstyti su žingsniniais varikliais ir žinojau, kad turiu vieną savo nepanaudotame diskelių įrenginyje. Neseniai perskaičiau straipsnį apie pelių dalių gelbėjimąhttp: //hackaday.com/2008/05/16/how-to-scavenge-a-mouse-for-parts/I th