Tabla de contenido:

Floppy Bird: 3 pasos
Floppy Bird: 3 pasos

Video: Floppy Bird: 3 pasos

Video: Floppy Bird: 3 pasos
Video: How To Create Flappy Bird In Scratch In Under 1 Minute! 2024, Noviembre
Anonim
Pájaro disquete
Pájaro disquete
Pájaro disquete
Pájaro disquete

Hoy haremos un juego usando una pantalla LCD TFT. Esto parecería un juego que es muy popular y mucha gente todavía juega a este juego. El juego se llama Flappy Bird, pero este juego es un poco diferente porque la interfaz de usuario es diferente y la forma en que funciona el juego. Llamé a este juego Floppy Bird porque esto podría dar lugar a problemas de derechos de autor. No obstante, es un juego muy divertido y fácil de hacer. He creado este instructivo que te permitirá hacer el juego por completo y hacerlo funcionar como yo lo hice. Si tiene alguna pregunta, por favor comente a continuación e intentaré responder estas preguntas lo más rápido posible.

Suministros

- Arduino Mega 2560 y cable

- Arduino Mega Shield

- Arduino TFT LCD Compatible con Arduino Mega 2560

- Tarjeta SD

Paso 1: Montaje de la pantalla LCD TFT

Montaje de la pantalla LCD TFT
Montaje de la pantalla LCD TFT

Ahora, podemos comenzar a ensamblar la pantalla LCD TFT. Conectaremos la pantalla LCD TFT al escudo, así que primero tome la pantalla LCD TFT y básicamente la alinee con los pines del escudo. Una vez que haya alineado los pines, presione la pantalla LCD TFT hacia abajo para que encaje en su lugar. Cuando todas las cabezas de los pines están en el escudo y no puede ver las cabezas de los pines, es cuando sabe que la pantalla LCD TFT está conectada correctamente. A continuación, podemos conectar el escudo al Arduino Mega 2560. Alinear los pines del escudo en el Arduino Mega y enchufarlo. Cuando todas las cabezas de los pines están en el Arduino Mega y no puede ver las cabezas de los pines, eso es cuando sepa que la pantalla LCD TFT está correctamente conectada y lista para encenderse. Conecte el Arduino para ver si ha conectado la pantalla LCD correctamente, si la pantalla LCD se enciende y la pantalla es blanca, felicidades, ha conectado correctamente la pantalla LCD TFT y ahora está lista para ser programada. Por último, tenemos una cosa que hacer, que es conectar la tarjeta SD en la pantalla LCD. En la parte posterior de la pantalla LCD TFT hay una ranura para tarjetas SD donde simplemente puede conectar la tarjeta SD. Por lo tanto, simplemente conéctelo y listo.

Paso 2: Programación de la pantalla LCD TFT

Programación de la pantalla LCD TFT
Programación de la pantalla LCD TFT

Ahora, programaremos la pantalla LCD para que ejecute el juego y podamos jugarlo. A continuación se muestra el código que debe compilar y cargar utilizando el IDE de Arduino.

Problemas que puede tener:

Cambia los parámetros de la TFT LCD según el modelo que tengas.

CÓDIGO COMPLETO:

#incluir #incluir #incluir

// ==== Creando Objetos

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Los parámetros deben ajustarse a su modelo de pantalla / escudo URTouch myTouch (6, 5, 4, 3, 2);

// ==== Definición de fuentes

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

extern unsigned int bird01 [0x41A]; // Mapa de bits de aves

int x, y; // Variables para las coordenadas donde se ha pulsado el display

// pájaro disquete

int xP = 319; int yP = 100; int yB = 50; int MovingRate = 3; int fallRateInt = 0; flotador fallRate = 0; puntuación int = 0; int lastSpeedUpScore = 0; int HighestScore; booleano screenPressed = falso; boolean gameStarted = false;

configuración vacía () {

// Iniciar la visualización myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); puntaje más alto = EEPROM.read (0); // Leer la puntuación más alta de la EEPROM initiateGame (); // Iniciar el juego}

bucle vacío () {

xP = xP-MovingRate; // xP - coordenada x de los pilares; rango: 319 - (-51) drawPilars (xP, yP); // Dibuja los pilares // yB - coordenada y del pájaro que depende del valor de la variable FallRate yB + = fallRateInt; fallRate = fallRate + 0.4; // Cada entrada aumenta la tasa de caída para que podamos el efecto de la aceleración / gravedad fallRateInt = int (fallRate); // Comprueba la colisión if (yB> = 180 || yB <= 0) {// top and bottom gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// pilar superior gameOver (); } if ((xP = 5) && (yB> = yP + 60)) {// pilar inferior gameOver (); } // Dibuja el pájaro drawBird (yB);

// Después de que el pilar haya pasado por la pantalla

si (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) {// Dibuja un rectángulo azul a la derecha del pilar myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x + 51, 0, x + 60, y); // Dibuja el pilar myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x + 49, 1, x + 1, y-1); // Dibuja el marco negro del pilar myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x + 50, 0, x, y); // Dibuja el rectángulo azul a la izquierda del pilar myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);

// El pilar inferior

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); } // Dibuja la partitura myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (puntuación, 100, 220); }

// ====== drawBird () - Función personalizada

void drawBird (int y) {// Dibuja el pájaro - mapa de bits myGLCD.drawBitmap (50, y, 35, 30, bird01); // Dibuja rectángulos azules por encima y por debajo del pájaro para borrar su estado anterior myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y + 30, 85, y + 36); } // ======== gameOver () - Función personalizada void gameOver () {delay (3000); // 1 segundo // Limpia la pantalla e imprime el texto myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("JUEGO TERMINADO", CENTRO, 40); myGLCD.print ("Puntuación:", 100, 80); myGLCD.printNumI (puntuación, 200, 80); myGLCD.print ("Reiniciando …", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); retraso (1000); myGLCD.printNumI (1, CENTER, 150); retraso (1000); // Escribe el puntaje más alto en la EEPROM si (puntaje> puntaje más alto) {puntaje más alto = puntaje; EEPROM.write (0, puntaje más alto); } // Restablece las variables a los valores de posición inicial xP = 319; yB = 50; fallRate = 0; puntuación = 0; lastSpeedUpScore = 0; MovingRate = 3; gameStarted = falso; // Reiniciar el juego initiateGame (); }

Paso 3: ¡Listo

¡Hecho!
¡Hecho!

Hemos hecho el circuito y compilado el código. Ahora, solo tenemos que conectar el mega Arduino y jugar el juego.

Aquí, tengo un enlace a un video que muestra cómo funciona este juego y qué hacer para configurarlo:

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

Avísame si tienes algún problema a continuación.

Recomendado: