Përmbajtje:

Floppy Bird: 3 hapa
Floppy Bird: 3 hapa

Video: Floppy Bird: 3 hapa

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

Sot do të bëjmë një lojë duke përdorur një LCD TFT. Kjo do të dukej si një lojë e cila është vërtet e popullarizuar dhe shumë njerëz ende e luajnë këtë lojë. Loja quhet Flappy Bird por kjo lojë është paksa e ndryshme sepse UI është e ndryshme si dhe mënyra se si funksionon loja. Unë e quaj këtë lojë Floppy Bird pasi kjo mund të çojë në çështje të së drejtës së autorit. Sidoqoftë, është një lojë vërtet argëtuese dhe është e lehtë për tu bërë. Unë e kam bërë këtë të udhëzueshme e cila do t'ju lejojë ta bëni lojën plotësisht dhe ta bëni atë të funksionojë si unë. Nëse keni ndonjë pyetje, ju lutemi komentoni më poshtë dhe unë do të përpiqem t'u përgjigjem këtyre pyetjeve sa më shpejt që të jetë e mundur.

Furnizimet

- Arduino Mega 2560 dhe kabllo

- Arduino Mega Shield

- Arduino TFT LCD E pajtueshme me Arduino Mega 2560

- Kartë SD

Hapi 1: Montimi i LCD TFT

Montimi i LCD TFT
Montimi i LCD TFT

Tani, ne mund të fillojmë të montojmë LCD TFT. Ne do ta lidhim LCD TFT me mburojën, kështu që së pari merrni LCD TFT dhe në thelb e rreshtoni atë me kunjat në mburojë. Pasi të keni rreshtuar kunjat, shtyjeni LCD TFT poshtë në mënyrë që të përshtatet në vend. Kur të gjitha kokat e kunjave janë në mburojë dhe nuk mund t'i shihni kokat e kunjave, atëherë e dini që TFT LCD është e lidhur siç duhet. Tjetra, ne mund ta lidhim mburojën me Arduino Mega 2560. Rreshtoni kunjat e mburojës në Arduino Mega dhe futeni atë. Kur të gjitha kokat e kunjave janë në Arduino Mega dhe nuk mund t'i shihni kokat e kunjave, kjo është kur e dini që TFT LCD është lidhur siç duhet dhe është gati për t'u ndezur. Lidhni Arduino për të parë nëse e keni lidhur LCD siç duhet, nëse LCD ndizet dhe ekrani është i bardhë atëherë urime, ju keni lidhur me sukses TFT LCD dhe tani është gati për tu programuar. Së fundmi, ne kemi një gjë për të bërë, e cila është lidhja e kartës SD në LCD. Në anën e pasme të TFT LCD ka një vend të kartës SD ku thjesht mund të lidhni kartën SD. Prandaj, thjesht lidheni atë dhe gjithçka është bërë.

Hapi 2: Programimi i LCD TFT

Programimi i LCD TFT
Programimi i LCD TFT

Tani, ne do të programojmë LCD -në në mënyrë që të funksionojë loja dhe ne mund ta luajmë atë. Më poshtë është kodi që duhet të përpiloni dhe ngarkoni duke përdorur Arduino IDE.

Problemet që mund të keni:

Ndryshoni parametrat e TFT LCD sipas modelit që keni.

KODI PLOT:

#përfshi #përfshi #përfshi

// ==== Krijimi i objekteve

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametrat duhet të përshtaten me modelin tuaj Display/Shield URTouch myTouch (6, 5, 4, 3, 2);

// ==== Përcaktimi i Fonteve

jashtme uint8_t SmallFont ; ekstern uint8_t BigFont ; jashtme uint8_t SevenSegNumFont ;

zog i jashtëm i panënshkruar int01 [0x41A]; // Bitmap Zogu

int x, y; // Variablat për koordinatat ku ekrani është shtypur

// Floppy Bird

int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; int rezultati = 0; int lastSpeedUpScore = 0; int më i lartëScore; boolean screenPressed = false; lojë booleanStarted = false;

void setup () {

// Filloni të shfaqni myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); rezultati më i lartë = EEPROM.lexo (0); // Lexoni rezultatin më të lartë nga EEPROM initateGame (); // Filloni lojën}

lak void () {

xP = xP-moveRate; // xP - x koordinata e shtyllave; diapazoni: 319 - (-51) shtylla tërheqëse (xP, yP); // Vizaton shtyllat // koordinata yB - y e zogut e cila varet nga vlera e ndryshores në rënieRate yB+= fallRateInt; fallRate = rënieRate+0.4; // Çdo inetracion shkalla e rënies rritet në mënyrë që të mund të kemi efektin e nxitimit/ gravitetit fallRateInt = int (fallRate); // Kontrollon për përplasje nëse (yB> = 180 || yB <= 0) {// lojë e sipërme dhe e poshtmeOver (); } if ((xP = 5) && (yB <= yP-2)) {// loja e shtyllës së sipërmeMbi (); } if ((xP = 5) && (yB> = yP+60)) {// lojë me shtyllë më të ulëtOver (); } // Vizaton zogun drawBird (yB);

// Pasi shtylla të ketë kaluar nëpër ekran

nëse (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); } tjetër nëse (x <= 268) {// Vizaton drejtkëndësh blu në të djathtë të shtyllës myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Vizaton shtyllën myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Vizaton kornizën e zezë të shtyllës myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Vizaton drejtkëndëshin blu në të majtë të shtyllës myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Shtylla e poshtme

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

// ====== drawBird () - Funksioni i personalizuar

void drawBird (int y) {// Vizaton zogun - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Vizaton drejtkëndëshat blu mbi dhe poshtë zogut në mënyrë që të pastrojë gjendjen e tij të mëparshme myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Funksioni i personalizuar void gameOver () {vonesë (3000); // 1 sekondë // Pastron ekranin dhe printon tekstin myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTER, 40); myGLCD.print ("Rezultati:", 100, 80); myGLCD.printNumI (rezultati, 200, 80); myGLCD.print ("Rinisja…", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); vonesa (1000); myGLCD.printNumI (1, QENDRA, 150); vonesa (1000); // Shkruan rezultatin më të lartë në EEPROM nëse (rezultati> rezultati më i lartë) {më i lartëScore = rezultati; EEPROM.shkruaj (0, rezultati më i lartë); } // Rivendos variablat për të filluar vlerat e pozicionit xP = 319; yB = 50; fallRate = 0; rezultat = 0; lastSpeedUpScore = 0; lëvizjeRate = 3; gameStarted = false; // Rinisni lojën beginateGame (); }

Hapi 3: U krye

U krye!
U krye!

Ne kemi bërë qarkun dhe kemi përpiluar kodin. Tani, ne vetëm duhet të lidhim mega Arduino dhe të luajmë lojën.

Këtu, kam një lidhje me një video që tregon se si funksionon kjo lojë dhe çfarë të bëni për ta konfiguruar:

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

Më tregoni nëse keni ndonjë problem më poshtë.

Recommended: