Índice:

Floppy Bird: 3 etapas
Floppy Bird: 3 etapas

Vídeo: Floppy Bird: 3 etapas

Vídeo: Floppy Bird: 3 etapas
Vídeo: How to make a flappy bird style game in Construct 3 | Part 1 2024, Julho
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

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

Montagem do LCD TFT
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

Programando o LCD TFT
Programando o 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

Feito!
Feito!

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: