Tabla de contenido:

LCD Invaders: un juego similar a Space Invaders en pantalla LCD de caracteres de 16x2: 7 pasos
LCD Invaders: un juego similar a Space Invaders en pantalla LCD de caracteres de 16x2: 7 pasos

Video: LCD Invaders: un juego similar a Space Invaders en pantalla LCD de caracteres de 16x2: 7 pasos

Video: LCD Invaders: un juego similar a Space Invaders en pantalla LCD de caracteres de 16x2: 7 pasos
Video: Puzzle con arduino conectado al Tv 2024, Mes de julio
Anonim
LCD Invaders: un juego similar a Space Invaders en una pantalla LCD de caracteres de 16x2
LCD Invaders: un juego similar a Space Invaders en una pantalla LCD de caracteres de 16x2
LCD Invaders: un juego similar a Space Invaders en una pantalla LCD de caracteres de 16x2
LCD Invaders: un juego similar a Space Invaders en una pantalla LCD de caracteres de 16x2
LCD Invaders: un juego similar a Space Invaders en una pantalla LCD de caracteres de 16x2
LCD Invaders: un juego similar a Space Invaders en una pantalla LCD de caracteres de 16x2
LCD Invaders: un juego similar a Space Invaders en una pantalla LCD de caracteres de 16x2
LCD Invaders: un juego similar a Space Invaders en una pantalla LCD de caracteres de 16x2

No es necesario presentar un juego legendario de "Space Invaders". La característica más interesante de este proyecto es que utiliza la visualización de texto para la salida gráfica. Se logra implementando 8 personajes personalizados.

Puede descargar el boceto completo de Arduino aquí:

github.com/arduinocelentano/LCD_invaders/

Suministros

Placa Arduino UNO

Escudo del teclado LCD

Cable USB para cargar bocetos

Paso 1: Diseño del juego

Diseño de juego
Diseño de juego

La pantalla no permite controlar píxeles separados y proporciona solo dos líneas de texto que no son suficientes para el juego. Pero permite implementar hasta 8 caracteres personalizados. El truco consiste en procesar cada carácter de 5x8 píxeles como dos celdas de juego de 5x4 píxeles. Es decir, tendremos un campo de juego de 16x4, lo cual tiene sentido. 8 personajes son suficientes para implementar sprites para la nave espacial del jugador, balas y alienígenas animados. Dado que los sprites son 5x4 y los personajes son 5x8, necesitaremos algunos personajes con dos sprites como sprite "una nave espacial y una bala", "un sprite alienígena y un sprite de bala", etc. Todos los personajes personalizados se muestran en la imagen.

Paso 2: Procesamiento de botones

Procesamiento de botones
Procesamiento de botones

Normalmente, todos los botones de una pantalla LCD están conectados al mismo pin analógico. Hay diferentes versiones de pantalla LCD, por lo que probablemente necesitará cambiar ligeramente los literales enteros en el código de procesamiento de mi botón.

Paso 3: jerarquía de clases

Jerarquía de clases
Jerarquía de clases

Implementé un GameObject de clase base que tiene coordenadas y campos de velocidad y procesa colisiones. Las clases Ship, Alien y Bullet se heredan de él.

Paso 4: Actualización de la pantalla

Actualizar la pantalla
Actualizar la pantalla

La lógica de renderización puede parecer algo complicada porque tenemos que transformar la lógica del juego de 16x4 en una pantalla de 16x2. Lea los comentarios en el código para obtener más referencias. Para evitar el parpadeo, utilicé una matriz de caracteres bidimensional como búfer de texto. Permite utilizar un par (uno para cada línea) de operaciones de impresión para actualizar la pantalla.

Paso 5: Lógica del juego

Lógica del juego
Lógica del juego

Aquí está el corazón del juego. El bucle principal cambia las coordenadas de todos los objetos, comprueba todo tipo de colisiones y eventos de pulsación de botones. La velocidad de los extraterrestres y su probabilidad de disparo aumenta de un nivel a otro. Pero la recompensa de puntuación también aumenta.

Paso 6: un huevo de Pascua

Un huevo de pascua
Un huevo de pascua

No hay nivel después del nivel 42. En serio. Es el último nivel de vida, el universo y todo.:)

Recomendado: