Índice:

Invasores de LCD: um jogo parecido com invasores de espaço no visor de caracteres LCD 16x2: 7 etapas
Invasores de LCD: um jogo parecido com invasores de espaço no visor de caracteres LCD 16x2: 7 etapas

Vídeo: Invasores de LCD: um jogo parecido com invasores de espaço no visor de caracteres LCD 16x2: 7 etapas

Vídeo: Invasores de LCD: um jogo parecido com invasores de espaço no visor de caracteres LCD 16x2: 7 etapas
Vídeo: Part 2 - A1UP - Cabinet Conversion to 60 in 1 Board - MultiCade - iCade - Arcade1UP 2024, Novembro
Anonim
Invasores de LCD: um jogo parecido com invasores de espaço no display LCD de caracteres 16x2
Invasores de LCD: um jogo parecido com invasores de espaço no display LCD de caracteres 16x2
Invasores de LCD: um jogo parecido com invasores de espaço no display LCD de caracteres 16x2
Invasores de LCD: um jogo parecido com invasores de espaço no display LCD de caracteres 16x2
Invasores de LCD: um jogo parecido com invasores de espaço no display LCD de caracteres 16x2
Invasores de LCD: um jogo parecido com invasores de espaço no display LCD de caracteres 16x2
Invasores de LCD: um jogo parecido com invasores de espaço no display LCD de caracteres 16x2
Invasores de LCD: um jogo parecido com invasores de espaço no display LCD de caracteres 16x2

Não há necessidade de apresentar o lendário jogo “Space Invaders”. O recurso mais interessante deste projeto é que ele usa exibição de texto para saída gráfica. É conseguido através da implementação de 8 caracteres personalizados.

Você pode baixar o esboço completo do Arduino aqui:

github.com/arduinocelentano/LCD_invaders/

Suprimentos

Placa Arduino UNO

Escudo do teclado LCD

Cabo USB para upload de esboço

Etapa 1: Design do jogo

Design de jogo
Design de jogo

A tela não permite controlar pixels separados e fornece apenas duas linhas de texto, o que não é suficiente para o jogo. Mas permite implementar até 8 caracteres personalizados. O truque é processar cada caractere de 5x8 pixels como duas células de jogo de 5x4 pixels. Ou seja, teremos um campo de jogo de 16x4, o que faz sentido. 8 personagens são apenas o suficiente para implementar sprites para a nave espacial do jogador, balas e alienígenas animados. Uma vez que os sprites são 5x4 e os personagens são 5x8, vamos precisar de alguns personagens com dois sprites como "uma nave espacial e um sprite bala", "um alien e um sprite bala" etc. Todos os personagens personalizados são mostrados na imagem.

Etapa 2: Botões de processamento

Botões de processamento
Botões de processamento

Normalmente, todos os botões em uma blindagem de LCD são conectados ao mesmo pino analógico. Existem diferentes versões do escudo LCD, então você provavelmente precisará alterar ligeiramente os literais inteiros no meu código de processamento de botão.

Etapa 3: Hierarquia de classes

Hierarquia de classes
Hierarquia de classes

Implementei uma classe base GameObject que tem coordenadas e campos de velocidade e colisões de processos. As classes Ship, Alien e Bullet são herdadas dele.

Etapa 4: Atualizando a tela

Atualizando a Tela
Atualizando a Tela

A lógica de renderização pode parecer um tanto complicada porque temos que transformar a lógica do jogo 16x4 em uma exibição 16x2. Por favor, leia os comentários no código para referência futura. Para evitar cintilação, usei uma matriz de char bidimensional como um buffer de texto. Ele permite usar um par (um para cada linha) de operações de impressão para atualizar a tela.

Etapa 5: lógica do jogo

Lógica do jogo
Lógica do jogo

Aqui está o coração do jogo. O loop principal muda as coordenadas de todos os objetos, verifica todos os tipos de colisões e eventos de pressionamento de botão. A velocidade dos alienígenas e sua probabilidade de tiro aumentam de nível para nível. Mas a recompensa de pontuação também aumenta.

Etapa 6: Um Ovo de Páscoa

Um ovo de páscoa
Um ovo de páscoa

Não há nível após o nível 42. Sério. É o nível máximo de vida, o universo e tudo.:)

Recomendado: