Innholdsfortegnelse:
Video: Floppy Bird: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
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
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
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
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:
Floppy Disk IR Camera Hack: 8 trinn (med bilder)
Floppy Disk IR Camera Hack: De siste sju årene har jeg hatt et ødelagt digitalkamera liggende. Det er fremdeles i stand til å ta bilder, men det er nesten umulig å bruke på grunn av en ødelagt skjerm. Det grunnleggende problemet er at noen ganger vil menyen ved et uhell få deg
Arduino Flappy Bird - Arduino 2,4 "TFT berøringsskjerm SPFD5408 Bird Game Project: 3 trinn
Arduino Flappy Bird | Arduino 2,4 "TFT berøringsskjerm SPFD5408 Bird Game Project: Flappy Bird var et for populært spill der på få år, og mange mennesker skapte det på sin egen måte, det gjorde jeg også, jeg laget min versjon av flappy bird med Arduino og den billige 2,4 " TFT Berøringsskjerm SPFD5408, så la oss komme i gang
Apple II Floppy Hackintosh I7-7700 3.6Ghz: 7 trinn
Apple II Floppy Hackintosh I7-7700 3.6Ghz: Dette første bildet er for å gi deg referanse til en uberørt stasjon (med den originale regnbue Apple-logoen), min har litt mer kjørelengde på den. Det andre bildet er det indre, jeg glemte å ta et bilde før jeg demonterte det, så takket være Goog
Amiga Arduino Floppy Drive -veske/kabinett: 5 trinn
Amiga Arduino Floppy Drive Case/Enclosure: Denne instruksjonen forklarer hvordan du monterer diskettstasjonen til Arduino Amiga Floppy Disk Reader/Writer for Windows -prosjektet. For å fullføre dette prosjektet trenger du: En 3D -skriver Arduino pro mini og FTDI breakout board beskrevet på abo
SD/MMC Passer i Floppy Edge-kontakt: 8 trinn (med bilder)
SD/MMC Passer i Floppy Edge-kontakt: Du kan feste et SD-kamera minnekort til ethvert hjemmebrygget DIY-prosjekt som har noen I/O-pinner, ved hjelp av vanlige kontakter du sannsynligvis har akkurat nå. For mer informasjon, hvordan du får gratis mmc enhetsdrivere og installering av forskjellige open source Linux -distrikter