Índice:

Versão do jogo Arduino Space Race _1: 5 etapas
Versão do jogo Arduino Space Race _1: 5 etapas

Vídeo: Versão do jogo Arduino Space Race _1: 5 etapas

Vídeo: Versão do jogo Arduino Space Race _1: 5 etapas
Vídeo: Space Shuttle Arduino game 2024, Julho
Anonim
Image
Image

Olá amigos. Hoje vou mostrar como você pode fazer um Jogo de Corrida Espacial pela tela LCD5110 e joystic. Vejamos os passos …

Etapa 1: NECESSIDADES

ESQUEMA
ESQUEMA

Aqui está uma lista de peças que usei para fazer este projeto:

  • Arduino UNO
  • Módulo Joystick
  • Jumper Wires (macho para macho e macho para fêmea)
  • Tábua de pão

Etapa 2: ESQUEMA

VCC -> Arduino 5V

BL -> Arduino pino 3

GND -> Arduino GND

CLK (SCLK) -> Arduino pino 8

DIN (MOSI) -> Arduino pino 9

DC -> Arduino pino 10

CE ou CS -> Arduino pino 12

RST (RESET) -> Arduino pino 11

Etapa 3: CODE

CÓDIGO
CÓDIGO

O código contém explicações sobre as funções do código. Você vai entender isso facilmente. Se você tiver um problema, pode entrar em contato comigo.

#incluir

LCD5110 lcd (8, 9, 10, 11, 12); // (clk, din, dc, rst, ce)

int BL = 3;

extern uint8_t SmallFont ; // descreve as fontes extern uint8_t MediumNumbers ; extern uint8_t arac ; // descreva nossa forma extern uint8_t dusman_araci ; // descreva a forma do inimigo const int xpin = A0; // joystick x pino char pozisyon = 2; // descreva a localização, nossa forma inicial localização 2 boolean kontrol = true; boolean dusmanOldu = true; skor int = 0; int hiz = 0; int dusmanKonumu1; // descreve a localização do inimigo1 x int dusmanKonumu2; // descreve a localização do inimigo2 x int dusmaninYdeKonumu; // descreve a localização dos inimigos

void dusmanAraci (int yer, int asama) {// definir locais para formas inimigas

if (yer == 1) {// if location = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // desenha a forma do inimigo} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// se falharmos, o jogo acaba

enquanto (1) {atraso (100); // aguarde 1 milissegundo lcd.clrScr (); // limpa a tela lcd.setFont (SmallFont); // define a fonte lcd.print ("GAME OVER", CENTER, 20); // imprime lcd.update (); // atualiza a tela}}

void setup () {pinMode (BL, OUTPUT); // definir a saída de luz de fundo lcd. InitLCD (); // inicie a tela lcd lcd.setContrast (55); // define o contraste (entre 0 e 127) Serial.begin (9600); // inicia a comunicação serial}

void loop () {

analogWrite (BL, 200);

// define a tela do jogo lcd.drawRect (0, 0, 47, 47); // desenhamos o retângulo lcd.setFont (SmallFont); // define a fonte lcd.print ("skor", 53, 0); // printf score lcd.setFont (MediumNumbers); // definir a fonte lcd.printNumI (skor, 59, 7); // obtém pontuação lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // velocidade de impressão lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // obtém velocidade lcd.update (); //atualizar

// define a localização do joyistick int x = analogRead (xpin); if (x <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 3 && kontrol == true) {// if location! = 3, x state> 600 e o controle são verdadeiros pozisyon ++; // aumentar a localização significa mover a forma para a direita kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // para aprender o estado x // definir a localização de nossa forma lcd.clrScr (); // limpar a tela if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // desenhe nosso navio if (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

if (pozisyon == 3) {

lcd.drawBitmap (34, 37, arac, 12, 8);}

if (dusmanOldu) {// se a forma do inimigo está morta, verifique se eles estão mortos

dusmanKonumu1 = pozisyon; // desenha a primeira forma do inimigo dusmanKonumu2 = random (0, 4); // desenha outra forma de inimigo em algum lugar dusmaninYdeKonumu = 0; // traz o inimigo do topo dusmanOldu = false;} // o inimigo é recriado para que não estejam mortos dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // desenha a primeira forma do inimigo e pega-a de cima para baixo dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // desenhe a segunda forma inimiga e obtenha-a de cima para baixo if (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))) {// se nossa forma tocar as formas inimigas oyunBitti ();} // o jogo acabou if (dusmaninYdeKonumu> 40) {// se nossa forma escapar dos inimigos dusmanOldu = true; // mata as formas inimigas skor ++;} // aumenta uma a uma a pontuação // aumenta a velocidade de acordo com a pontuação if (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; atraso (40); }}

Etapa 4: CODE BITMAP

Além disso, você deve incluir gráfico de bitmap para formas. Deve ser um arquivo.c e o mesmo nome com o nome de código. Além disso, deve estar no mesmo arquivo.

// ------------------------------------------------ ------------------------------ // Arquivo gerado pelo LCD Assistant // https://en.radzio.dxp.pl / bitmap_converter / // --------------------------------------------- --------------------------------- #include // incluir para a função progmem

const unsigned char arac PROGMEM = {// nosso bitmap de forma

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

const unsigned char dusman_araci PROGMEM = {// bitmap do navio inimigo

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

Etapa 5: OBRIGADO POR VISUALIZAR

OBRIGADO POR VISUALIZAR
OBRIGADO POR VISUALIZAR

Antes de começar a compartilhar meus projetos, eu codificava em palavras turcas para que não pudesse mudar todas as palavras para o inglês. Aqui está a tradução de palavras que utilizo este projeto, Oyun = Jogo

Arac = Forma

Dusman = Inimigo

kontrol = controle

Konum, Yer = Localização

Oyun Bitti = Fim do jogo

Skor = Pontuação

Hiz = velocidade

Recomendado: