Indholdsfortegnelse:

Floppy Bird: 3 trin
Floppy Bird: 3 trin

Video: Floppy Bird: 3 trin

Video: Floppy Bird: 3 trin
Video: Flappy Bird - Ending 2024, November
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

I dag laver vi et spil ved hjælp af et TFT LCD. Dette ville ligne et spil, der er virkelig populært, og mange mennesker spiller stadig dette spil. Spillet hedder Flappy Bird, men dette spil er en smule anderledes, fordi brugergrænsefladen er anderledes såvel som den måde, spillet fungerer på. Jeg kaldte dette spil Floppy Bird, da dette kunne føre til ophavsretlige problemer. Ikke desto mindre er det et rigtig sjovt spil, og det er let at lave. Jeg har gjort dette instruerbart, som giver dig mulighed for at lave spillet fuldstændigt og få det til at fungere som jeg gjorde. Hvis du har spørgsmål, så kommenter herunder, og jeg vil forsøge at besvare disse spørgsmål så hurtigt som muligt.

Forbrugsvarer

- Arduino Mega 2560 og kabel

- Arduino Mega Shield

- Arduino TFT LCD kompatibel med Arduino Mega 2560

- SD kort

Trin 1: Montering af TFT LCD

Montering af TFT LCD
Montering af TFT LCD

Nu kan vi begynde at samle TFT LCD. Vi forbinder TFT LCD'et med skjoldet, så tag først TFT LCD'et og juster det stort set med stifterne på skjoldet. Når du har justeret stifterne, skal du skubbe TFT LCD'en ned, så den passer på plads. Når alle nålhovederne er i skjoldet, og du ikke kan se nålhovederne, er det, når du ved, at TFT LCD er tilsluttet korrekt. Dernæst kan vi tilslutte skjoldet til Arduino Mega 2560. Juster stifterne på skjoldet på Arduino Mega og sæt det i. Når alle stifthovederne er i Arduino Mega, og du ikke kan se stifthovederne, er det når du ved, at TFT LCD er tilsluttet korrekt, og den er klar til at blive tændt. Tilslut Arduino for at se, om du har tilsluttet LCD'et korrekt, hvis LCD'en tændes, og skærmen er hvid, så tillykke, du har tilsluttet TFT LCD'en, og nu er den klar til at blive programmeret. Endelig har vi en ting at gøre, det er at tilslutte SD -kortet i LCD'et. På bagsiden af TFT LCD er der et SD -kort slot, hvor du blot kan tilslutte SD -kortet. Derfor skal du bare tilslutte det, og det er færdigt.

Trin 2: Programmering af TFT LCD

Programmering af TFT LCD
Programmering af TFT LCD

Nu programmerer vi LCD'en, så den kører spillet, og vi kan spille det. Nedenfor er den kode, du skal kompilere og uploade ved hjælp af Arduino IDE.

Problemer, du måske har:

Skift parametre for TFT LCD i henhold til den model, du har.

KOMPLET KODE:

#include #include #include

// ==== Oprettelse af objekter

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametre bør justeres til din Display/Shield -model URTouch myTouch (6, 5, 4, 3, 2);

// ==== Definere skrifttyper

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

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

int x, y; // Variabler for koordinaterne, hvor displayet er blevet 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øjeste score; boolsk screenPressed = false; boolsk gameStarted = false;

ugyldig opsætning () {

// Start visning af myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); højeste score = EEPROM.read (0); // Læs den højeste score fra EEPROM initiateGame (); // Start spillet}

void loop () {

xP = xP-movingRate; // xP - x koordinat af søjlerne; område: 319 - (-51) drawPilars (xP, yP); // Tegner søjlerne // yB - y -koordinaten for fuglen, som afhænger af værdien af den faldendeRate -variabel yB+= fallRateInt; fallRate = fallRate+0,4; // Hver indtrængning stiger faldhastigheden, så vi kan effekten af acceleration/ tyngdekraft fallRateInt = int (fallRate); // Kontrollerer kollision, hvis (yB> = 180 || yB <= 0) {// top og bund gameOver (); } hvis ((xP = 5) && (yB <= yP-2)) {// øvre søjle gameOver (); } hvis ((xP = 5) && (yB> = yP+60)) {// lavere søjle gameOver (); } // Tegner fuglen drawBird (yB);

// Efter at søjlen er passeret gennem skærmen

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

// Den nederste søjle

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

// ====== drawBird () - Brugerdefineret funktion

void drawBird (int y) {// Tegner fuglen - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Tegner blå rektangler over og under fuglen for at rydde dens tidligere tilstand myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Brugerdefineret funktion void gameOver () {forsinkelse (3000); // 1 sekund // Rydder skærmen og udskriver teksten myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("SPIL OVER", CENTER, 40); myGLCD.print ("Score:", 100, 80); myGLCD.printNumI (score, 200, 80); myGLCD.print ("Genstart …", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); forsinkelse (1000); myGLCD.printNumI (1, CENTER, 150); forsinkelse (1000); // Skriver den højeste score i EEPROM hvis (score> højeste score) {højeste score = score; EEPROM.write (0, højeste score); } // Nulstiller variablerne til at starte positionsværdier xP = 319; yB = 50; fallRate = 0; score = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Genstart spil initateGame (); }

Trin 3: Udført

Færdig!
Færdig!

Vi har lavet kredsløbet og samlet koden. Nu skal vi bare tilslutte Arduino mega og spille spillet.

Her har jeg et link til en video, der viser, hvordan dette spil fungerer, og hvad jeg skal gøre for at konfigurere det:

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

Lad mig vide, hvis du har problemer herunder.

Anbefalede: