Innehållsförteckning:
Video: Floppy Bird: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
Idag kommer vi att göra ett spel med en TFT LCD. Detta skulle se ut som ett spel som är riktigt populärt och många spelar fortfarande det här spelet. Spelet heter Flappy Bird men det här spelet är lite annorlunda eftersom användargränssnittet är annorlunda liksom hur spelet fungerar. Jag kallade det här spelet Floppy Bird eftersom det kan leda till upphovsrättsliga problem. Ändå är det ett riktigt roligt spel och det är enkelt att göra. Jag har gjort detta instruerbart som gör att du kan göra spelet helt och få det att fungera som jag gjorde. Om du har några frågor vänligen kommentera nedan och jag ska försöka svara på dessa frågor så snabbt som möjligt.
Tillbehör
- Arduino Mega 2560 och kabel
- Arduino Mega Shield
- Arduino TFT LCD Kompatibel med Arduino Mega 2560
- SD-kort
Steg 1: Montering av TFT LCD
Nu kan vi börja montera TFT LCD. Vi ansluter TFT LCD -skärmen till skärmen, så ta först TFT LCD -skärmen och justera den i princip med stiften på skärmen. När du har justerat stiften trycker du ned TFT LCD -skärmen så att den passar på plats. När alla stifthuvuden sitter i skölden och du inte kan se stifthuvudena, är det då du vet att TFT LCD är korrekt ansluten. Därefter kan vi ansluta skölden till Arduino Mega 2560. Rikta in stiften på skärmen på Arduino Mega och sätt i den. När alla stifthuvuden sitter i Arduino Mega och du inte kan se stifthuvudena, är det när du vet att TFT LCD -skärmen är korrekt ansluten och den är redo att sättas på. Anslut Arduino för att se om du har anslutit LCD -skärmen ordentligt, om LCD -skärmen tänds och skärmen är vit, grattis, du har anslutit TFT LCD -skärmen och nu är den klar att programmeras. Slutligen har vi en sak att göra, det är att ansluta SD -kortet i LCD -skärmen. På baksidan av TFT LCD finns en SD -kortplats där du helt enkelt kan ansluta SD -kortet. Därför är det bara att ansluta den och det är klart.
Steg 2: Programmering av TFT LCD
Nu kommer vi att programmera LCD -skärmen så att den kör spelet och vi kan spela det. Nedan finns koden som du måste kompilera och ladda upp med Arduino IDE.
Problem du kan ha:
Ändra parametrarna för TFT LCD enligt den modell du har.
KOMPLETT KOD:
#include #include #include
// ==== Skapa objekt
UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Parametrar bör anpassas till din Display/Shield -modell URTouch myTouch (6, 5, 4, 3, 2);
// ==== Definiera teckensnitt
extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ;
extern osignerad int bird01 [0x41A]; // Fågelbitmapp
int x, y; // Variabler för koordinaterna där displayen har tryckts in
// Floppy Bird
int xP = 319; int yP = 100; int yB = 50; int movingRate = 3; int fallRateInt = 0; float fallRate = 0; int poäng = 0; int lastSpeedUpScore = 0; int högsta betyg; booleskt screenPressed = false; booleskt spelStarted = false;
void setup () {
// Starta visa myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); upperScore = EEPROM.read (0); // Läs den högsta poängen från EEPROM initiateGame (); // Starta spelet}
void loop () {
xP = xP-movingRate; // xP - x koordinat för pelarna; intervall: 319 - (-51) drawPilars (xP, yP); // Ritar pelarna // yB - y -koordinaten för fågeln som beror på värdet för fallande hastighetsvariabel yB+= fallRateInt; fallRate = fallRate+0,4; // Varje inmatning ökar fallhastigheten så att vi kan få effekt av acceleration/ gravitation fallRateInt = int (fallRate); // Kontrollerar kollision om (yB> = 180 || yB <= 0) {// top and bottom gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// upper pillar gameOver (); } if ((xP = 5) && (yB> = yP+60)) {// lägre pelare gameOver (); } // Ritar fågeln drawBird (yB);
// Efter att pelaren har passerat genom skärmen
om (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); } annars om (x <= 268) {// Ritar blå rektangel till höger om pelaren myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Ritar pelaren myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Ritar den svarta ramen på pelaren myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, 0, x, y); // Ritar den blå rektangeln till vänster om pelaren myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);
// Bottenpelaren
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); } // Ritar poängen myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (poäng, 100, 220); }
// ====== drawBird () - Anpassad funktion
void drawBird (int y) {// Ritar fågeln - bitmapp myGLCD.drawBitmap (50, y, 35, 30, bird01); // Ritar blå rektanglar över och under fågeln för att rensa dess tidigare tillstånd myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Anpassad funktion void gameOver () {delay (3000); // 1 sekund // Rensar skärmen och skriver ut texten myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("SPEL OVER", CENTER, 40); myGLCD.print ("Poäng:", 100, 80); myGLCD.printNumI (poäng, 200, 80); myGLCD.print ("Omstart …", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); fördröjning (1000); myGLCD.printNumI (1, CENTER, 150); fördröjning (1000); // Skriver högsta poäng i EEPROM om (poäng> högsta poäng) {högsta poäng = poäng; EEPROM.write (0, högsta poäng); } // Återställer variablerna till startpositionsvärden xP = 319; yB = 50; fallRate = 0; poäng = 0; lastSpeedUpScore = 0; movingRate = 3; gameStarted = false; // Starta om spelet initateGame (); }
Steg 3: Klar
Vi har gjort kretsen och sammanställt koden. Nu måste vi bara ansluta Arduino mega och spela spelet.
Här har jag en länk till en video som visar hur det här spelet fungerar och vad jag ska göra för att ställa in det:
drive.google.com/file/d/18hKQ8v2w2OkM_std-…
Låt mig veta om du har några problem nedan.
Rekommenderad:
Floppy Disk IR Camera Hack: 8 steg (med bilder)
Floppy Disk IR Camera Hack: Under de senaste sju åren har jag haft en trasig digitalkamera liggande. Det är fortfarande möjligt att ta bilder, men det är nästan omöjligt att använda på grund av en trasig skärm. Det grundläggande problemet är att ibland kommer menyn av misstag att få
Arduino Flappy Bird - Arduino 2,4 "TFT pekskärm SPFD5408 Bird Game Project: 3 steg
Arduino Flappy Bird | Arduino 2,4 "TFT pekskärm SPFD5408 Bird Game Project: Flappy Bird var för populärt spel där på några år och många människor skapade det på sitt eget sätt så gjorde jag, jag skapade min version av flappy bird med Arduino och den billiga 2,4 " TFT Pekskärm SPFD5408, så låt oss komma igång
Apple II Floppy Hackintosh I7-7700 3.6Ghz: 7 steg
Apple II Floppy Hackintosh I7-7700 3.6Ghz: Den här första bilden är för att ge dig referens till en orörd enhet (med den ursprungliga regnbågens Apple-logotyp), min har lite mer körsträcka. Den andra bilden är det inre, jag glömde att ta en bild innan jag demonterade den, så med tillstånd av Goog
Amiga Arduino Floppy Drive -hölje/kapsling: 5 steg
Amiga Arduino Floppy Drive Case/Enclosure: Denna instruktionsbok förklarar hur du monterar diskettenheten för Arduino Amiga Floppy Disk Reader/Writer för Windows -projektet. För att slutföra detta projekt behöver du: En 3D -skrivare Arduino pro mini och FTDI breakout board beskrivs på abo
SD/MMC passar i Floppy Edge-kontakt: 8 steg (med bilder)
SD/MMC passar i Floppy Edge-kontakt: Du kan ansluta ett SD-kameraminneskort till alla hemproducerade DIY-projekt som har några I/O-stift, med vanliga kontakter som du förmodligen har just nu. För mer information, hur man får gratis mmc enhetsdrivrutiner och installera olika Linux -distrikt med öppen källkod