Sommario:
- Forniture
- Passaggio 1: assemblaggio del display LCD TFT
- Passaggio 2: programmazione del display LCD TFT
- Passaggio 3: fatto
Video: Floppy Bird: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Oggi realizzeremo un gioco utilizzando un LCD TFT. Sembrerebbe un gioco molto popolare e molte persone ci giocano ancora. Il gioco si chiama Flappy Bird ma questo gioco è un po' diverso perché l'interfaccia utente è diversa così come il modo in cui funziona il gioco. Ho chiamato questo gioco Floppy Bird in quanto ciò potrebbe portare a problemi di copyright. Tuttavia è un gioco davvero divertente ed è facile da realizzare. Ho creato questo tutorial che ti permetterà di realizzare il gioco completamente e farlo funzionare come ho fatto io. Se hai domande, commenta qui sotto e cercherò di rispondere a queste domande il più velocemente possibile.
Forniture
- Arduino Mega 2560 e cavo
- Arduino Mega Scudo
- Arduino TFT LCD Compatibile con Arduino Mega 2560
- Scheda SD
Passaggio 1: assemblaggio del display LCD TFT
Ora possiamo iniziare ad assemblare il TFT LCD. Collegheremo il TFT LCD allo shield, quindi per prima cosa prendiamo il TFT LCD e sostanzialmente lo allineeremo con i pin sullo shield. Dopo aver allineato i pin, spingere il display LCD TFT verso il basso in modo che si adatti al suo posto. Quando tutte le teste dei pin sono nella schermatura e non puoi vedere le teste dei pin, è allora che sai che il display LCD TFT è collegato correttamente. Successivamente, possiamo collegare lo scudo all'Arduino Mega 2560. Allineare i pin dello scudo sull'Arduino Mega e collegarlo. Quando tutte le teste dei pin sono nell'Arduino Mega e non puoi vedere le teste dei pin, è quando sai che il TFT LCD è collegato correttamente ed è pronto per essere acceso. Collega Arduino per vedere se hai collegato correttamente l'LCD, se l'LCD si accende e lo schermo è bianco, congratulazioni, hai collegato correttamente l'LCD TFT e ora è pronto per essere programmato. Infine, abbiamo una cosa da fare, ovvero collegare la scheda SD nell'LCD. Sul retro dell'LCD TFT c'è uno slot per schede SD dove puoi semplicemente inserire la scheda SD. Pertanto, basta collegarlo e il gioco è fatto.
Passaggio 2: programmazione del display LCD TFT
Ora, programmeremo l'LCD in modo che esegua il gioco e possiamo giocarci. Di seguito è riportato il codice che devi compilare e caricare utilizzando l'IDE di Arduino.
Problemi che potresti avere:
Modifica i parametri del display LCD TFT in base al modello che possiedi.
CODICE COMPLETO:
#include #include #include
//==== Creazione di oggetti
UTFT mioGLCD(ILI9341_16, 38, 39, 40, 41); //I parametri dovrebbero essere adattati al tuo modello Display/Shield URTouch myTouch(6, 5, 4, 3, 2);
//==== Definizione dei caratteri
extern uint8_t SmallFont; extern uint8_t BigFont; extern uint8_t SevenSegNumFont;
extern unsigned int bird01[0x41A]; // Bitmap uccello
int x, y; // Variabili per le coordinate in cui è stato premuto il display
// Uccello floscio
int xP = 319; int yP = 100; int yB = 50; int MovingRate = 3; int fallRateInt = 0; tasso di caduta float = 0; punteggio int = 0; int lastSpeedUpScore = 0; int punteggio più alto; boolean screenPressed = false; boolean gameStarted = false;
void setup() {
// Avvia display myGLCD. InitLCD(); mioGLCD.clrScr(); myTouch. InitTouch(); myTouch.setPrecision(PREC_MEDIUM); punteggio più alto = EEPROM.read(0); // Legge il punteggio più alto dalla EEPROM beginGame(); // Avvia il gioco }
ciclo vuoto() {
xP=xP-MovingRate; // xP - coordinata x dei pilastri; intervallo: 319 - (-51) drawPilars(xP, yP); // Disegna i pilastri // yB - coordinata y dell'uccello che dipende dal valore della variabile fallRate yB+=fallRateInt; fallRate=fallRate+0.4; // Ad ogni intrazione il tasso di caduta aumenta in modo da poter ottenere l'effetto di accelerazione/ gravità fallRateInt= int(fallRate); // Controlla la collisione if(yB>=180 || yB<=0){ // gameOver superiore e inferiore(); } if((xP=5) && (yB<=yP-2)){ // pilastro superiore gameOver(); } if((xP=5) && (yB>=yP+60)){ // pilastro inferiore gameOver(); } // Disegna l'uccello drawBird(yB);
// Dopo che il pilastro è passato attraverso lo schermo
if (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) { // Disegna il rettangolo blu a destra del pilastro myGLCD.setColor(114, 198, 206); myGLCD.fillRect(x+51, 0, x+60, y); // Disegna il pilastro myGLCD.setColor(0, 200, 20); myGLCD.fillRect(x+49, 1, x+1, y-1); // Disegna la cornice nera del pilastro myGLCD.setColor(0, 0, 0); myGLCD.drawRect(x+50, 0, x, y); // Disegna il rettangolo blu a sinistra del pilastro myGLCD.setColor(114, 198, 206); myGLCD.fillRect(x-1, 0, x-3, y);
// Il pilastro inferiore
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); } // Disegna il punteggio myGLCD.setColor(0, 0, 0); myGLCD.setBackColor(221, 216, 148); myGLCD.setFont(BigFont); myGLCD.printNumI(punteggio, 100, 220); }
//====== drawBird() - Funzione personalizzata
void drawBird(int y) { // Disegna l'uccello - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Disegna rettangoli blu sopra e sotto l'uccello per cancellare il suo stato precedente myGLCD.setColor(114, 198, 206); myGLCD.fillRoundRect(50, y, 85, y-6); myGLCD.fillRoundRect(50, y+30, 85, y+36); } //======== gameOver() - Funzione personalizzata void gameOver() { delay(3000); // 1 secondo // Cancella lo schermo e stampa il testo myGLCD.clrScr(); myGLCD.setColor(255, 255, 255); myGLCD.setBackColor(0, 0, 0); myGLCD.setFont(BigFont); myGLCD.print("GAME OVER", CENTER, 40); myGLCD.print("Punteggio:", 100, 80); myGLCD.printNumI(punteggio, 200, 80); myGLCD.print("Riavvio…", CENTRO, 120); myGLCD.setFont(SevenSegNumFont); myGLCD.printNumI(2, CENTER, 150); ritardo(1000); myGLCD.printNumI(1, CENTER, 150); ritardo(1000); // Scrive il punteggio più alto nella EEPROM if (score >highScore) {highScore = score; EEPROM.write(0, punteggio più alto); } // Reimposta le variabili per iniziare i valori di posizione xP=319; yB=50; tasso di caduta=0; punteggio = 0; lastSpeedUpScore = 0; MovingRate = 3; gameStarted = falso; // Riavvia il gioco iniziaGame(); }
Passaggio 3: fatto
Abbiamo realizzato il circuito e compilato il codice. Ora non ci resta che collegare Arduino mega e giocare.
Qui ho un link a un video che mostra come funziona questo gioco e cosa fare per configurarlo:
drive.google.com/file/d/18hKQ8v2w2OkM_std-…
Fammi sapere se hai problemi in basso.
Consigliato:
Hack fotocamera IR floppy disk: 8 passaggi (con immagini)
Hack fotocamera IR floppy disk: negli ultimi sette anni, ho avuto una fotocamera digitale rotta in giro. È ancora in grado di scattare foto, ma è quasi impossibile da usare a causa di uno schermo rotto. Il problema fondamentale è che a volte il menu arriva accidentalmente
Arduino Flappy Bird - Arduino 2.4" TFT Touchscreen SPFD5408 Progetto Bird Game: 3 passaggi
Arduino Flappy Bird | Arduino 2.4" TFT Touchscreen SPFD5408 Bird Game Project: Flappy Bird era un gioco troppo popolare lì in pochi anni e molte persone lo hanno creato a modo loro, così come io, ho creato la mia versione di flappy bird con Arduino e l'economico TFT da 2,4 pollici Touchscreen SPFD5408, quindi cominciamo
Sistema di sterzo intelligente per auto robot che utilizza il motore passo-passo del vecchio lettore floppy/CD: 8 passaggi (con immagini)
Sistema di sterzo intelligente per auto robot che utilizza il motore passo-passo del vecchio lettore floppy/CD: sistema di sterzo intelligente per auto robot Sei preoccupato di realizzare un buon sistema di sterzo per la tua auto robot? Ecco una soluzione superba usando solo le tue vecchie unità floppy/CD/DVD. guardalo e fatti un'ideaVisita georgeraveen.blogspot.com
Apple II Floppy Hackintosh I7-7700 3.6 Ghz: 7 passaggi
Apple II Floppy Hackintosh I7-7700 3.6Ghz: Questa prima immagine è per darti un riferimento a un'unità incontaminata (con il logo Apple arcobaleno originale), la mia ha un po' più di chilometraggio. La seconda immagine è l'interno, ho dimenticato di fare una foto prima di smontarla, quindi per gentile concessione di Goog
Custodia/custodia per unità floppy per Amiga Arduino: 5 passaggi
Custodia/involucro per unità floppy per Arduino Amiga: questa istruzione spiega come assemblare la custodia per unità floppy per il progetto lettore/scrittore di floppy disk Arduino Amiga per Windows. Per completare questo progetto è necessario: Una stampante 3D La scheda di breakout Arduino pro mini e FTDI descritta sull'abo