Sommario:

Arduino Space Race Game Versione _1: 5 passaggi
Arduino Space Race Game Versione _1: 5 passaggi

Video: Arduino Space Race Game Versione _1: 5 passaggi

Video: Arduino Space Race Game Versione _1: 5 passaggi
Video: Amazing arduino project 2024, Dicembre
Anonim
Image
Image

Ehi amici. Oggi ti mostrerò come puoi creare un gioco di corse spaziali con schermo LCD5110 e joystick. Diamo un'occhiata ai passaggi…

Passaggio 1: BISOGNI

SCHEMA
SCHEMA

Ecco un elenco di parti che ho usato per realizzare questo progetto:

  • Arduino UNO
  • Modulo joystick
  • Ponticelli (da maschio a maschio e da maschio a femmina)
  • tagliere

Passaggio 2: SCHEMA

VCC -> Arduino 5V

BL -> Arduino pin 3

GND -> Arduino GND

CLK (SCLK) -> Arduino pin 8

DIN (MOSI) -> Arduino pin 9

DC -> Arduino pin 10

CE o CS -> Arduino pin 12

RST (RESET) -> Arduino pin 11

Passaggio 3: CODICE

CODICE
CODICE

Il codice contiene spiegazioni sulle funzioni del codice. Lo capirai facilmente. Se hai un problema, puoi contattarmi.

#includere

LCD5110 LCD (8, 9, 10, 11, 12); //(clk, din, dc, primo, ce)

int BL=3;

extern uint8_t SmallFont; //descrivi i caratteri extern uint8_t MediumNumbers; extern uint8_t arac; //descrivi la nostra forma extern uint8_t dusman_araci; //descrivi la forma del nemico const int xpin=A0; //joystick x pin char pozisyon=2; //descrivi la posizione, la nostra forma inizia la posizione 2 boolean kontrol = true; booleano dusmanOldu = vero; int skor=0; int hiz=0; int dusmanKonumu1; //descrivi nemico1 x posizione int dusmanKonumu2; //descrivi nemico2 x posizione int dusmaninYdeKonumu; //descrivi i nemici e la posizione

void dusmanAraci(int yer, int asama){ //imposta le posizioni per le forme nemiche

if (yer==1){ //if location=1; lcd.drawBitmap(2, asama, dusman_araci, 12, 8); //disegna la forma del nemico } 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 falliamo, il gioco finisce

mentre(1) { ritardo(100); //aspetta 1 millisecondo lcd.clrScr(); //cancella lo schermo lcd.setFont(SmallFont); //set font lcd.print("GAME OVER", CENTER, 20); //stampa lcd.update(); //aggiorna lo schermo }}

void setup() { pinMode(BL, OUTPUT); //imposta la retroilluminazione Output lcd. InitLCD(); //inizializza lo schermo lcd lcd.setContrast(55); //imposta contrasto(da 0 a 127) Serial.begin(9600); //avvia la comunazione seriale }

ciclo vuoto() {

analogWrite(BL, 200);

//imposta la schermata di gioco lcd.drawRect(0, 0, 47, 47); //disegniamo il rettangolo lcd.setFont(SmallFont); //imposta il carattere lcd.print("skor", 53, 0); //printf score lcd.setFont(MediumNumbers); //imposta il carattere lcd.printNumI(skor, 59, 7); //ottenere il punteggio lcd.setFont(SmallFont); lcd.print("hiz", 56, 25); //velocità di stampa lcd.setFont(MediumNumbers); lcd.printNumI(hiz, 59, 32); //ottieni velocità lcd.update(); //aggiornare

//imposta la posizione del joystick 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 il controllo è vero pozisyon++; //aumenta la posizione significa sposta la forma a destra kontrol=false; } else if(x>300 && x<600){ kontrol=true; } Serial.println(x); //per imparare lo stato x //imposta la posizione della nostra forma lcd.clrScr(); //cancella lo schermo if (pozisyon==1){ //if location=1; lcd.drawBitmap(2, 37, arac, 12, 8);} //disegna la nostra nave if (pozisyon==2){ lcd.drawBitmap(18, 37, arac, 12, 8);}

if (posizione==3){

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

if (dusmanOldu){ //se la forma del nemico è morta, controlla se sono morti

dusmanKonumu1 = posizione; //disegna la prima forma del nemico dusmanKonumu2 = random(0, 4); //disegna un'altra forma nemica da qualche parte dusmaninYdeKonumu = 0; //porta il nemico dall'alto dusmanOldu = false;} //il nemico viene ricreato in modo che non sia morto dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu++; //disegna la prima forma del nemico e prendila dall'alto verso il basso dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu++; //disegna la seconda forma del nemico e prendila dall'alto verso il basso if (dusmaninYdeKonumu>22 && ((dusmanKonumu1 == posizione) || (dusmanKonumu2 == posizione))){ //se la nostra forma tocca le forme nemiche oyunBitti();} //il gioco è finito if (dusmaninYdeKonumu>40){ //se la nostra forma fugge dai nemici dusmanOldu = true; //uccidi le forme nemiche skor++;} //aumenta uno ad uno il punteggio //aumenta la velocità in base al punteggio if (skor>=0 && skor10 && skor20 && skor30 && skor<=40){ hiz = 3; ritardo(40); } }

Passaggio 4: CODICE BITMAP

Inoltre, devi includere la grafica bitmap per le forme. Deve essere un file.c e lo stesso nome con nome in codice. Inoltre, deve essere nello stesso file.

//------------------------------------------------ ----------------// File generato da LCD Assistant // https://en.radzio.dxp.pl /bitmap_converter/ //------------------------------------------------------------ ---------------------------------- #include //include per la funzione programma

const unsigned char arac PROGMEM = { //la nostra forma bitmap

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

const unsigned char dusman_araci PROGMEM = { //bitmap della nave nemica

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

Passaggio 5: GRAZIE PER LA VISUALIZZAZIONE

GRAZIE PER LA VISUALIZZAZIONE
GRAZIE PER LA VISUALIZZAZIONE

Prima che ı iniziasse a condividere i miei progetti, codificavo in parole turche, quindi non potevo tradurre tutte le parole in inglese. Ecco le parole di traduzione che usano questo progetto, Oyun = Gioco

Arac = Forma

Dusman = Nemico

kontrol = controllo

Konum, Yer = Posizione

Oyun Bitti = Fine del gioco

Skor = Punteggio

Hiz = Velocità

Consigliato: