segunda-feira, 8 de março de 2021

EX27 - Breakout Game com "Display Touch Arduino Shield"


    Esta é uma versão pequena do clássico videogame de Breakout para Arduino UNO e tela LCD TFT (240x320 pixels), driver ILI9341 com comunicação paralela de 8 bits.
    O game Breakout tem várias telas com diferentes linhas e colunas de blocos configuráveis, até oito linhas, com cada duas linhas de uma cor diferente, que podem ser ativadas ou desativadas com padrões diferentes. Usando uma única bola e o painel de toque, o jogador deve derrubar tantos blocos quanto possível usando as paredes e / ou a raquete abaixo para ricochetear a bola contra os blocos e eliminá-los. Se a raquete do jogador errar o rebote da bola, ele perderão uma vez. Cada bloco da linha ganha pontos diferentes.
    Cada nível pode configurar o tamanho da raquete e o tamanho da bola. A velocidade da bola aumenta a cada golpe, você pode configurar a velocidade inicial para cada tela. Dependendo do ponto da raquete que atinge a bola, a velocidade horizontal também muda. Na programação você pode definir como novas telas com diferentes padrões de parede. Você pode definir também o padrão de parede é definido como uma matriz de 8x8 bits que corresponde a esta matriz de bits, que irá produzir esta parede, observe que ela é espelhada.
    Como jogar: Segure o dispositivo com as mãos e use os dedos polegares sobre a tela para mover a raquete para a esquerda ou para a direita.
    Hardware: Este projeto usa um display TFT LCD de 2,4 polegadas com Touchscreen resistiva de 4 fios e um leitor de cartão SD integrado.
Calibrando a tela de toque: Você deve calibrar a tela para que as informações de posição estejam corretas ao tocar na tela. A biblioteca MCUFriend_kbv fornece um exemplo com o nome "TouchScreen_Calibr_native". O exemplo envia os resultados para a porta serial. Inicie o monitor serial do Arduino IDE para que você possa copiar o código gerado pelo exemplo.
    Siga as instruções na tela de toque, pressione e segure os marcadores de posição exibidos, que são destacados em branco. Depois de fazer todas as marcas de posição, a calibração da tela é enviada para você na tela de toque e pela porta serial. Para este projeto você precisa dos dados para a "calibração na posição retrato".
    Animação: Para mover a imagem pela tela ao longo do tempo, é preciso usar uma velocidade estática e aplicá-la à posição de uma imagem a cada intervalo de tempo.
    A resolução do ILI9341 é 240 x 320, portanto, precisamos de dois inteiros de 9 bits para fazer referência a um pixel na tela. Usando inteiros de 16 bits, deixa 6 bits livres para representar uma parte decimal. Chamamos esse número de expoente binário. E podemos usar esses seis bits para ter uma parte decimal variando de 0,000 a 0,63. Portanto, podemos usar matemática inteira evitando aritmética de ponto flutuante. Para obter a parte inteira do número, fazemos uma mudança aritmética para a direita.
    Modo de demonstração: Remova o comentário da Diretriz de Definição e a raquete seguirá a bola.

 O Código do "Breakout Game" com "Display Touch Arduino Shield" está disponível em: 21_03_17_Breakout-Game_com _com_Display_Touch_Arduino_Shield.

© Direitos de autor. 2020: Gomes; Sinésio Raimundo. Última atualização: 22/03/2021

Nenhum comentário:

Postar um comentário