Cuprins:

Floppy Bird: 3 pași
Floppy Bird: 3 pași

Video: Floppy Bird: 3 pași

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

Astăzi vom face un joc folosind un TFT LCD. Ar arăta ca un joc care este foarte popular și mulți oameni încă joacă acest joc. Jocul se numește Flappy Bird, dar acest joc este puțin diferit, deoarece interfața de utilizare este diferită, precum și modul în care funcționează jocul. Am numit acest joc Floppy Bird, deoarece acest lucru ar putea duce la probleme de copyright. Cu toate acestea, este un joc foarte distractiv și ușor de realizat. Am făcut acest lucru instructabil, care vă va permite să faceți jocul complet și să-l facă să funcționeze așa cum am făcut. Dacă aveți întrebări, vă rugăm să comentați mai jos și voi încerca să răspund la aceste întrebări cât mai repede posibil.

Provizii

- Arduino Mega 2560 și cablu

- Arduino Mega Shield

- Arduino TFT LCD Compatibil cu Arduino Mega 2560

- Card SD

Pasul 1: Asamblarea ecranului LCD TFT

Asamblarea ecranului TFT LCD
Asamblarea ecranului TFT LCD

Acum, putem începe să asamblăm ecranul TFT LCD. Vom conecta ecranul LCD TFT la ecran, deci luați mai întâi ecranul LCD TFT și, în principiu, îl aliniați cu pinii de pe ecran. După ce ați aliniat pinii, împingeți TFT LCD în jos, astfel încât să se potrivească în poziție. Când toate capetele pinului sunt în scut și nu puteți vedea capetele pinilor, atunci știți că TFT LCD este conectat corect. Apoi, putem conecta scutul la Arduino Mega 2560. Aliniați pinii scutului de pe Arduino Mega și conectați-l. Când toate capetele de pin sunt în Arduino Mega și nu puteți vedea capetele de pin, asta este când știți că LCD-ul TFT este conectat corect și este gata să fie pornit. Conectați Arduino pentru a vedea dacă ați conectat corect LCD-ul, dacă LCD-ul se aprinde și ecranul este alb, atunci felicitări, ați conectat cu succes LCD-ul TFT și acum este gata să fie programat. În cele din urmă, avem un lucru de făcut, care este să conectăm cardul SD la LCD. Pe partea din spate a ecranului LCD TFT există un slot pentru card SD unde puteți conecta pur și simplu cardul SD. Prin urmare, conectați-l și gata.

Pasul 2: Programarea TFT LCD

Programarea TFT LCD
Programarea TFT LCD

Acum, vom programa ecranul LCD astfel încât acesta să ruleze jocul și să-l putem juca. Mai jos este codul pe care trebuie să-l compilați și să îl încărcați utilizând Arduino IDE.

Probleme pe care le-ați putea avea:

Modificați parametrii ecranului TFT LCD în funcție de modelul pe care îl aveți.

CODUL COMPLET:

#include #include #include

// ==== Crearea obiectelor

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametrii ar trebui să fie adaptați la modelul dvs. Display / Shield URTouch myTouch (6, 5, 4, 3, 2);

// ==== Definirea fonturilor

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

extern unsigned int bird01 [0x41A]; // Bird Bitmap

int x, y; // Variabile pentru coordonatele unde a fost apăsat afișajul

// Floppy Bird

int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int FallRateInt = 0; float fallRate = 0; int scor = 0; int lastSpeedUpScore = 0; int cel mai înalt scor; ecran boolean Presat = fals; boolean gameStarted = false;

configurare nulă () {

// Inițiază afișarea myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); maximumScore = EEPROM.read (0); // Citiți cel mai mare scor din EEPROM initiateGame (); // Inițierea jocului}

bucla nulă () {

xP = xP-movingRate; // xP - coordonata x a stâlpilor; interval: 319 - (-51) drawPilars (xP, yP); // Desenează stâlpii // yB - coordonata y a păsării, care depinde de valoarea variabilei Falling Rate yB + = FallRateInt; FallRate = FallRate + 0,4; // Fiecare intrare crește rata de cădere, astfel încât să putem efectul accelerației / gravitației fallRateInt = int (fallRate); // Verifică coliziunea dacă (yB> = 180 || yB <= 0) {// gameOver sus și jos (); } if ((xP = 5) && (yB <= yP-2)) {// stâlp superior gameOver (); } if ((xP = 5) && (yB> = yP + 60)) {// jos pilon jocOver (); } // Desenează pasărea drawBird (yB);

// După ce stâlpul a trecut prin ecran

if (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) {// Desenează dreptunghi albastru dreapta stâlpului myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x + 51, 0, x + 60, y); // Desenează stâlpul myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x + 49, 1, x + 1, y-1); // Desenează cadrul negru al stâlpului myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x + 50, 0, x, y); // Desenează dreptunghiul albastru din stânga stâlpului myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Stâlpul de jos

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); } // Desenează scorul myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (scor, 100, 220); }

// ====== drawBird () - Funcție personalizată

void drawBird (int y) {// Draws the bird - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Desenează dreptunghiuri albastre deasupra și dedesubtul păsării pentru a șterge starea sa anterioară myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y + 30, 85, y + 36); } // ======== gameOver () - Funcție personalizată void gameOver () {delay (3000); // 1 secundă // Șterge ecranul și tipărește textul myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTER, 40); myGLCD.print ("Scor:", 100, 80); myGLCD.printNumI (scor, 200, 80); myGLCD.print ("Repornirea …", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); întârziere (1000); myGLCD.printNumI (1, CENTER, 150); întârziere (1000); // Scrie cel mai mare scor din EEPROM dacă (scor> cel mai înalt scor) {scor mai mare = scor; EEPROM.write (0, cel mai înalt scor); } // Resetează variabilele pentru a începe valorile poziției xP = 319; yB = 50; FallRate = 0; scor = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Reporniți jocul initiateGame (); }

Pasul 3: Gata

Terminat!
Terminat!

Am realizat circuitul și am compilat codul. Acum, trebuie doar să conectăm mega Arduino și să jucăm jocul.

Aici, am un link către un videoclip care arată cum funcționează acest joc și ce trebuie făcut pentru a-l configura:

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

Anunțați-mă dacă aveți probleme mai jos.

Recomandat: