Índice:
Vídeo: Floppy Bird: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Hoje faremos um jogo usando um LCD TFT. Isso pareceria um jogo realmente popular e muitas pessoas ainda o jogam. O jogo é chamado Flappy Bird, mas é um pouco diferente porque a interface do usuário é diferente, assim como a forma como o jogo funciona. Chamei esse jogo de Floppy Bird, pois isso poderia levar a problemas de direitos autorais. No entanto, é um jogo muito divertido e fácil de fazer. Eu tornei isso instrutível, o que permitirá que você faça o jogo completamente e funcione como eu. Se você tiver alguma dúvida, comente abaixo e tentarei responder a essas perguntas o mais rápido possível.
Suprimentos
- Arduino Mega 2560 e cabo
- Arduino Mega Shield
- Arduino TFT LCD compatível com o Arduino Mega 2560
- Cartão SD
Etapa 1: Montagem do LCD TFT
Agora, podemos começar a montar o LCD TFT. Vamos conectar o LCD TFT à blindagem, então primeiro pegue o LCD TFT e basicamente alinhe-o com os pinos da blindagem. Depois de alinhar os pinos, empurre o LCD TFT para baixo para que ele se encaixe no lugar. Quando todas as cabeças dos pinos estão na blindagem e você não consegue ver as cabeças dos pinos, é quando você sabe que o LCD TFT está conectado corretamente. Em seguida, podemos conectar a blindagem ao Arduino Mega 2560. Alinhe os pinos da blindagem no Arduino Mega e conecte-o. Quando todas as cabeças de pino estão no Arduino Mega e você não consegue ver as cabeças dos pinos, isso é quando você sabe que o LCD TFT está conectado corretamente e pronto para ser ligado. Conecte o Arduino para ver se você conectou o LCD corretamente, se o LCD liga e a tela está branca, então parabéns, você conectou com sucesso o LCD TFT e agora está pronto para ser programado. Por último, temos uma coisa a fazer, que é conectar o cartão SD no LCD. Na parte de trás do LCD TFT, há um slot para cartão SD onde você pode simplesmente conectar o cartão SD. Portanto, basta conectá-lo e pronto.
Etapa 2: Programação do LCD TFT
Agora, vamos programar o LCD para que rode o jogo e possamos jogá-lo. Abaixo está o código que você deve compilar e fazer upload usando o IDE do Arduino.
Problemas que você pode ter:
Altere os parâmetros do LCD TFT de acordo com o modelo que você possui.
CÓDIGO COMPLETO:
#include #include #include
// ==== Criando objetos
UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Os parâmetros devem ser ajustados para seu modelo de Display / Shield URTouch myTouch (6, 5, 4, 3, 2);
// ==== Definindo fontes
extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ;
extern unsigned int bird01 [0x41A]; // Bird Bitmap
int x, y; // Variáveis para as coordenadas onde o display foi pressionado
// Floppy Bird
int xP = 319; int yP = 100; int yB = 50; int MovingRate = 3; int fallRateInt = 0; float fallRate = 0; pontuação int = 0; int lastSpeedUpScore = 0; int higherScore; boolean screenPressed = false; boolean gameStarted = false;
void setup () {
// Iniciar exibição myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); maior pontuação = EEPROM.read (0); // Lê a pontuação mais alta do EEPROM InitteGame (); // Inicie o jogo}
void loop () {
xP = xP-movingRate; // xP - coordenada x dos pilares; intervalo: 319 - (-51) drawPilars (xP, yP); // Desenha os pilares // yB - coordenada y do pássaro que depende do valor da variável fallingRate yB + = fallRateInt; fallRate = fallRate + 0,4; // A cada entrada, a taxa de queda aumenta para que possamos o efeito da aceleração / gravidade fallRateInt = int (fallRate); // Verifica a colisão if (yB> = 180 || yB <= 0) {// superior e inferior gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// pilar superior gameOver (); } if ((xP = 5) && (yB> = yP + 60)) {// pilar inferior gameOver (); } // Desenha o pássaro drawBird (yB);
// Depois que o pilar passou pela tela
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) {// Desenha o retângulo azul à direita do pilar myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x + 51, 0, x + 60, y); // Desenha o pilar myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x + 49, 1, x + 1, y-1); // Desenha a moldura preta do pilar myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x + 50, 0, x, y); // Desenha o retângulo azul à esquerda do pilar myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, 0, x-3, y);
// O 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); } // Desenha a pontuação myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (pontuação, 100, 220); }
// ====== drawBird () - Função personalizada
void drawBird (int y) {// Desenha o pássaro - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Desenha retângulos azuis acima e abaixo do pássaro para limpar seu estado anterior myGLCD.setColor (114, 198, 206); myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y + 30, 85, y + 36); } // ======== gameOver () - Função personalizada void gameOver () {delay (3000); // 1 segundo // Limpa a tela e imprime o texto myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTER, 40); myGLCD.print ("Pontuação:", 100, 80); myGLCD.printNumI (pontuação, 200, 80); myGLCD.print ("Reiniciando…", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, CENTER, 150); atraso (1000); myGLCD.printNumI (1, CENTER, 150); atraso (1000); // Grava a pontuação mais alta na EEPROM if (score> higherScore) {higherScore = score; EEPROM.write (0, maior pontuação); } // Reinicia as variáveis para os valores da posição inicial xP = 319; yB = 50; fallRate = 0; pontuação = 0; lastSpeedUpScore = 0; MovingRate = 3; gameStarted = false; // Reinicia o jogo InitteGame (); }
Etapa 3: Pronto
Fizemos o circuito e compilamos o código. Agora, só temos que conectar o mega Arduino e jogar o jogo.
Aqui, tenho um link para um vídeo que mostra como este jogo funciona e o que fazer para configurá-lo:
drive.google.com/file/d/18hKQ8v2w2OkM_std-…
Deixe-me saber se você tiver algum problema abaixo.
Recomendado:
Muscle Powered Flappy Bird: 9 etapas (com fotos)
Muscle Powered Flappy Bird: Você deve se lembrar de quando Flappy Bird conquistou o mundo de assalto, tornando-se tão popular que o criador o removeu das lojas de aplicativos para evitar publicidade indesejada. Este é o Flappy Bird como você nunca viu antes; combinando algumas composições prontas
Bird Feeder Monitor V2.0: 12 etapas (com imagens)
Bird Feeder Monitor V2.0: Este é um projeto para monitorar, fotografar e registrar a quantidade e o tempo gasto pelas aves em nosso comedouro. Vários Raspberry Pi's (RPi) foram usados para este projeto. Um foi usado como um sensor de toque capacitivo, Adafruit CAP1188, para detectar, registrar
Apple II Floppy Hackintosh I7-7700 3,6 Ghz: 7 etapas
Apple II Floppy Hackintosh I7-7700 3.6Ghz: Esta primeira imagem é uma referência a uma unidade original (com o logotipo original da Apple com o arco-íris), a minha tem um pouco mais de quilometragem. A segunda imagem são os internos, esqueci de tirar uma foto antes de desmontar, então cortesia do Goog
SD / MMC se encaixa no conector Floppy Edge: 8 etapas (com imagens)
SD / MMC se encaixa no conector Floppy Edge: Você pode anexar um cartão de memória de câmera SD a qualquer projeto caseiro de DIY que tenha alguns pinos de E / S, usando conectores comuns que você provavelmente tem agora. Para obter mais detalhes, como obter mmc grátis drivers de dispositivo e instalando várias distr
Apple Floppy Amp: 8 etapas (com imagens)
Apple Floppy Amp: Encontrou um antigo 5.25 " unidade de disquete em uma loja de artigos usados por US $ 5,99. Ele me lembrou da minha infância no Apple IIe, então acabei comprando sem saber o que fazer com ele. Eu sou um fã de anacronismo (plugue Shameless: veja retro hi-fi instrutível) e