Inhaltsverzeichnis:

Floppy Bird - Gunook
Floppy Bird - Gunook

Video: Floppy Bird - Gunook

Video: Floppy Bird - Gunook
Video: Flappy Bird - High Score 999! impossible! 2024, Juli
Anonim
Schlappvogel
Schlappvogel
Schlappvogel
Schlappvogel

Heute werden wir ein Spiel mit einem TFT-LCD machen. Dies würde nach einem sehr beliebten Spiel aussehen und viele Leute spielen dieses Spiel immer noch. Das Spiel heißt Flappy Bird, aber dieses Spiel ist ein bisschen anders, weil die Benutzeroberfläche und die Funktionsweise des Spiels anders sind. Ich habe dieses Spiel Floppy Bird genannt, da dies zu Urheberrechtsproblemen führen könnte. Trotzdem ist es ein wirklich lustiges Spiel und es ist einfach zu machen. Ich habe dieses anweisbare gemacht, das es Ihnen ermöglicht, das Spiel vollständig zu machen und es so zu machen, wie ich es getan habe. Wenn Sie Fragen haben, kommentieren Sie bitte unten und ich werde versuchen, diese Fragen so schnell wie möglich zu beantworten.

Lieferungen

- Arduino Mega 2560 und Kabel

- Arduino Mega-Schild

- Arduino TFT LCD kompatibel mit dem Arduino Mega 2560

- SD-Karte

Schritt 1: Zusammenbau des TFT-LCD

Zusammenbau des TFT-LCD
Zusammenbau des TFT-LCD

Jetzt können wir mit dem Zusammenbau des TFT-LCDs beginnen. Wir werden das TFT-LCD mit dem Schild verbinden, also zuerst das TFT-LCD nehmen und es grundsätzlich mit den Pins auf dem Schild ausrichten. Nachdem Sie die Stifte ausgerichtet haben, drücken Sie das TFT-LCD nach unten, damit es einrastet. Wenn sich alle Stiftköpfe in der Abschirmung befinden und Sie die Stiftköpfe nicht sehen können, wissen Sie, dass das TFT-LCD richtig angeschlossen ist. Als nächstes können wir das Schild an den Arduino Mega 2560 anschließen. Richten Sie die Stifte des Schildes am Arduino Mega aus und stecken Sie es ein. Wenn sich alle Stiftköpfe im Arduino Mega befinden und Sie die Stiftköpfe nicht sehen können, ist das wenn Sie wissen, dass das TFT-LCD richtig angeschlossen und bereit zum Einschalten ist. Stecken Sie das Arduino ein, um zu sehen, ob Sie das LCD richtig angeschlossen haben. Wenn das LCD einschaltet und der Bildschirm weiß ist, dann herzlichen Glückwunsch, Sie haben das TFT-LCD erfolgreich angeschlossen und können jetzt programmiert werden. Als letztes müssen wir noch eine Sache tun, nämlich die SD-Karte im LCD anzuschließen. Auf der Rückseite des TFT-LCDs befindet sich ein SD-Kartenslot, in den Sie die SD-Karte einfach einstecken können. Also einfach einstecken und fertig.

Schritt 2: Programmieren des TFT-LCD

Programmierung des TFT-LCD
Programmierung des TFT-LCD

Jetzt werden wir das LCD so programmieren, dass es das Spiel ausführt und wir es spielen können. Unten ist der Code, den Sie mit der Arduino IDE kompilieren und hochladen müssen.

Probleme, die Sie möglicherweise haben:

Ändern Sie die Parameter des TFT-LCDs entsprechend Ihrem Modell.

KOMPLETTER CODE:

#einschließen #einschließen #einschließen

//==== Objekte erstellen

UTFT myGLCD(ILI9341_16, 38, 39, 40, 41); // Parameter sollten an Ihr Display/Shield-Modell angepasst werden URTouch myTouch (6, 5, 4, 3, 2);

//==== Schriftarten definieren

extern uint8_t SmallFont; extern uint8_t BigFont; extern uint8_t SevenSegNumFont;

extern unsigned int bird01[0x41A]; // Vogel-Bitmap

intx, y; // Variablen für die Koordinaten wo das Display gedrückt wurde

// Floppy Bird

int xP = 319; int yP = 100; int yB = 50; int MovingRate = 3; int fallRateInt = 0; Float-FallRate = 0; int-Punktzahl = 0; int lastSpeedUpScore = 0; int höchste Punktzahl; boolescher screenPressed = false; boolean gameStarted = false;

Leere Einrichtung () {

// Anzeige einleiten myGLCD. InitLCD(); myGLCD.clrScr(); myTouch. InitTouch(); myTouch.setPrecision(PREC_MEDIUM); höchstes Ergebnis = EEPROM.read(0); // Lesen Sie die höchste Punktzahl aus dem EEPROM initieGame(); // Initiiere das Spiel }

Leere Schleife () {

xP=xP-Bewegungsrate; // xP - x-Koordinate der Säulen; Bereich: 319 - (-51) drawPilars(xP, yP); // Zeichnet die Säulen // yB - y-Koordinate des Vogels, die vom Wert der fallendenRate-Variablen abhängt yB+=fallRateInt; FallRate=FallRate+0,4; // Mit jeder Inetration erhöht sich die Fallrate, damit wir die Wirkung der Beschleunigung/Schwerkraft ausüben können fallRateInt= int(fallRate); // Prüft auf Kollision if(yB>=180 || yB<=0){ // top und bottom gameOver(); } if((xP=5) && (yB<=yP-2)){// obere Säule gameOver(); } if((xP=5) && (yB>=yP+60)){// untere Säule gameOver(); } // Zeichnet den Vogel drawBird(yB);

// Nachdem die Säule den Bildschirm passiert hat

wenn (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); } else if(x<=268) {// Zeichnet ein blaues Rechteck rechts von der Säule myGLCD.setColor(114, 198, 206); myGLCD.fillRect(x+51, 0, x+60, y); // Zeichnet die Säule myGLCD.setColor(0, 200, 20); myGLCD.fillRect(x+49, 1, x+1, y-1); // Zeichnet den schwarzen Rahmen der Säule myGLCD.setColor(0, 0, 0); myGLCD.drawRect(x+50, 0, x, y); // Zeichnet das blaue Rechteck links von der Säule myGLCD.setColor(114, 198, 206); myGLCD.fillRect(x-1, 0, x-3, y);

// Die untere Säule

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); } // Zeichnet die Punktzahl myGLCD.setColor(0, 0, 0); myGLCD.setBackColor(221, 216, 148); myGLCD.setFont(BigFont); myGLCD.printNumI(Score, 100, 220); }

//====== drawBird() - Benutzerdefinierte Funktion

void drawBird(int y) { // Zeichnet den Vogel - Bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Zeichnet blaue Rechtecke über und unter dem Vogel, um seinen vorherigen Zustand zu löschen myGLCD.setColor(114, 198, 206); myGLCD.fillRoundRect(50, y, 85, y-6); myGLCD.fillRoundRect(50, y+30, 85, y+36); } //======== gameOver () - Benutzerdefinierte Funktion void gameOver () { delay (3000); // 1 Sekunde // Löscht den Bildschirm und druckt den Text myGLCD.clrScr(); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.print("GAME OVER", CENTER, 40); myGLCD.print("Ergebnis:", 100, 80); myGLCD.printNumI(Score, 200, 80); myGLCD.print("Neustart…", MITTE, 120); myGLCD.setFont(SevenSegNumFont); myGLCD.printNumI(2, MITTE, 150); Verzögerung (1000); myGLCD.printNumI(1, MITTE, 150); Verzögerung (1000); // Schreibt die höchste Punktzahl in das EEPROM if (score > maximumScore) { höchsterScore = Score; EEPROM.write(0, höchste Punktzahl); } // Setzt die Variablen auf Startpositionswerte zurück xP=319; yB = 50; Fallrate=0; Punktzahl = 0; lastSpeedUpScore = 0; Bewegungsrate = 3; gameStarted = false; // Spiel neu starten initiieGame(); }

Schritt 3: Fertig

Fertig!
Fertig!

Wir haben die Schaltung erstellt und den Code kompiliert. Jetzt müssen wir nur noch den Arduino Mega anschließen und das Spiel spielen.

Hier habe ich einen Link zu einem Video, das zeigt, wie dieses Spiel funktioniert und was zu tun ist, um es einzurichten:

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

Lassen Sie mich unten wissen, wenn Sie irgendwelche Probleme haben.