Innholdsfortegnelse:

Floppy Bird: 3 trinn
Floppy Bird: 3 trinn

Video: Floppy Bird: 3 trinn

Video: Floppy Bird: 3 trinn
Video: Как рисовать FLAPPY BIRD Шаг за шагом Легко | 3/3 2024, November
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

I dag skal vi lage et spill med en TFT LCD. Dette vil se ut som et spill som er veldig populært, og mange mennesker spiller fortsatt dette spillet. Spillet heter Flappy Bird, men dette spillet er litt annerledes fordi brukergrensesnittet er annerledes så vel som måten spillet fungerer på. Jeg kalte dette spillet Floppy Bird, da dette kan føre til opphavsrettsproblemer. Likevel er det et veldig morsomt spill, og det er enkelt å lage. Jeg har gjort dette instruerbart som lar deg lage spillet helt og få det til å fungere som jeg gjorde. Hvis du har spørsmål, vennligst kommenter nedenfor, og jeg vil prøve å svare på disse spørsmålene så raskt som mulig.

Rekvisita

- Arduino Mega 2560 og kabel

- Arduino Mega Shield

- Arduino TFT LCD kompatibel med Arduino Mega 2560

- SD kort

Trinn 1: Montering av TFT LCD

Montering av TFT LCD
Montering av TFT LCD

Nå kan vi begynne å montere TFT LCD. Vi kobler TFT LCD -skjermen til skjoldet, så ta først TFT LCD -skjermen og juster den i utgangspunktet med pinnene på skjoldet. Når du har justert pinnene, skyver du TFT LCD -skjermen ned slik at den sitter på plass. Når alle pinnehodene er i skjoldet og du ikke kan se pinnehodene, er det da du vet at TFT LCD er riktig tilkoblet. Deretter kan vi koble skjermen til Arduino Mega 2560. Juster pinnene på skjoldet på Arduino Mega og plugg den inn. Når alle pinnehodene er i Arduino Mega og du ikke kan se pinnehodene, er det når du vet at TFT LCD er riktig tilkoblet og den er klar til å slås på. Plugg inn Arduino for å se om du har koblet LCD -en ordentlig, hvis LCD -en slås på og skjermen er hvit, så gratulerer, du har vellykket tilkoblet TFT LCD -en og nå er den klar til å bli programmert. Til slutt har vi en ting å gjøre, det er å koble SD -kortet til LCD -skjermen. På baksiden av TFT LCD -skjermen er det et SD -kortspor hvor du enkelt kan koble til SD -kortet. Derfor er det bare å koble den til og den er ferdig.

Trinn 2: Programmering av TFT LCD

Programmering av TFT LCD
Programmering av TFT LCD

Nå skal vi programmere LCD -skjermen slik at den kjører spillet, og vi kan spille det. Nedenfor er koden du må kompilere og laste opp ved hjelp av Arduino IDE.

Problemer du kan ha:

Endre parameterne på TFT LCD i henhold til modellen du har.

KOMPLETT KODE:

#include #include #include

// ==== Opprette objekter

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametere bør justeres til skjerm-/skjermmodellen URTouch myTouch (6, 5, 4, 3, 2);

// ==== Definere fonter

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

ekstern usignert int bird01 [0x41A]; // Bird Bitmap

int x, y; // Variabler for koordinatene der displayet er trykket

// Floppy Bird

int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; int score = 0; int lastSpeedUpScore = 0; int høyeste poengsum; boolsk screenPressed = false; boolsk gameStarted = false;

ugyldig oppsett () {

// Start skjerm myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); høyeste poengsum = EEPROM.read (0); // Les den høyeste poengsummen fra EEPROM initiateGame (); // Start spillet}

void loop () {

xP = xP-movingRate; // xP - x koordinat av pilarer; område: 319 - (-51) drawPilars (xP, yP); // Tegner søylene // yB - y -koordinaten til fuglen som avhenger av verdien til fallendeRate -variabelen yB+= fallRateInt; fallRate = fallRate+0,4; // Hver inngang fallhastigheten øker slik at vi kan effekten av akselerasjon/ tyngdekraft fallRateInt = int (fallRate); // Kontrollerer kollisjon hvis (yB> = 180 || yB <= 0) {// topp og bunn gameOver (); } hvis ((xP = 5) && (yB <= yP-2)) {// øvre søyle gameOver (); } hvis ((xP = 5) && (yB> = yP+60)) {// lavere søyle gameOver (); } // Tegner fuglen drawBird (yB);

// Etter at søylen har passert gjennom skjermen

hvis (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); } annet hvis (x <= 268) {// Tegner blå rektangel til høyre for søylen myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Tegner søylen myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Tegner den sorte rammen til søylen myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Tegner det blå rektangelet til venstre for søylen myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// Den nederste stolpen

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

// ====== drawBird () - Egendefinert funksjon

void drawBird (int y) {// Tegner fuglen - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Tegner blå rektangler over og under fuglen for å fjerne dens tidligere tilstand myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Tilpasset funksjon void gameOver () {delay (3000); // 1 sekund // Tømmer skjermen og skriver ut teksten myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("SPILL OVER", SENTRUM, 40); myGLCD.print ("Poengsum:", 100, 80); myGLCD.printNumI (poengsum, 200, 80); myGLCD.print ("Omstart …", SENTRUM, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); forsinkelse (1000); myGLCD.printNumI (1, CENTER, 150); forsinkelse (1000); // Skriver den høyeste poengsummen i EEPROM hvis (poengsum> høyeste poengsum) {høyeste poengsum = poengsum; EEPROM.write (0, høyeste poengsum); } // Tilbakestiller variablene til startposisjonsverdier xP = 319; yB = 50; fallRate = 0; poengsum = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Start spillet initateGame () på nytt; }

Trinn 3: Ferdig

Ferdig!
Ferdig!

Vi har laget kretsen og samlet koden. Nå må vi bare koble til Arduino mega og spille spillet.

Her har jeg en lenke til en video som viser hvordan dette spillet fungerer og hva jeg skal gjøre for å sette det opp:

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

Gi meg beskjed hvis du har problemer nedenfor.

Anbefalt: