Innehållsförteckning:

Floppy Bird: 3 steg
Floppy Bird: 3 steg

Video: Floppy Bird: 3 steg

Video: Floppy Bird: 3 steg
Video: Flappy Birds CoderDojo Nkpg 2024, Juli
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

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

Montering av TFT LCD
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

Programmering av TFT LCD
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

Gjort!
Gjort!

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: