Indholdsfortegnelse:
Video: Floppy Bird: 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
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
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
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
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:
Floppy Disk IR Camera Hack: 8 trin (med billeder)
Floppy Disk IR Camera Hack: I de sidste syv år har jeg haft et ødelagt digitalkamera liggende. Det er stadig i stand til at tage billeder, men det er næsten umuligt at bruge på grund af en ødelagt skærm. Det grundlæggende problem er, at menuen nogle gange ved et uheld får tu
Arduino Flappy Bird - Arduino 2,4 "TFT Touchscreen SPFD5408 Bird Game Project: 3 trin
Arduino Flappy Bird | Arduino 2,4 "TFT Touchscreen SPFD5408 Bird Game Project: Flappy Bird var for populært spil derude på få år, og mange mennesker skabte det på deres egen måde, det gjorde jeg også, jeg lavede min version af flappy bird med Arduino og den billige 2,4 " TFT Touchscreen SPFD5408, så lad os komme i gang
Apple II Floppy Hackintosh I7-7700 3.6Ghz: 7 trin
Apple II Floppy Hackintosh I7-7700 3.6Ghz: Dette første billede er for at give dig reference til et uberørt drev (med det originale regnbue Apple-logo), mit har lidt mere kilometertal på det. Det andet billede er det indre, jeg glemte at tage et billede, før jeg demonterede det, så høfligt af Goog
Amiga Arduino Floppy Drive Case/kabinet: 5 trin
Amiga Arduino Floppy Drive Case/Enclosure: Denne instruktør forklarer, hvordan du samler diskettedækslet til Arduino Amiga Floppy Disk Reader/Writer til Windows -projektet. For at fuldføre dette projekt skal du bruge: En 3D -printer Arduino pro mini og FTDI breakout board beskrevet på abo
SD/MMC Passer til Floppy Edge-stik: 8 trin (med billeder)
SD/MMC Passer til Floppy Edge-stik: Du kan vedhæfte et SD-kamera hukommelseskort til ethvert hjemmebrygget DIY-projekt, der har et par I/O-ben, ved hjælp af almindelige stik, du sandsynligvis har lige nu. For flere detaljer, hvordan du får gratis mmc enhedsdrivere og installation af forskellige open source Linux -distrikt