Sommario:
- Passaggio 1: PARTI
- Passaggio 2: SCHEMA
- Passaggio 3: CODICE
- Passaggio 4: CODICE BITMAP
- Passaggio 5: grazie per la visualizzazione
Video: Space Race Game Versione 2: 5 Passi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Ciao a tutti. Prima di questa versione del gioco, ha pubblicato la prima versione del gioco. Oggi, ı ti mostrerà la versione 2 di Space Race Game. Diamo un'occhiata ai passaggi…
Passaggio 1: PARTI
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
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, cin, dc,, primo, ce)
controllo booleano=vero;
booleano dusmanoldu=vero;
extern uint8_t SmallFont; //descrivi i caratteri
extern uint8_t MediumNumbers; extern uint8_t arac; //descrivi la nostra forma extern uint8_t dusmanAraci; //descrivi la forma del nemico const int xpin=A0; //joystick x pin char pozisyon=3; //descrivi la posizione, la nostra forma inizia la posizione 3 int BL=3; int skor=0; int hiz=0; int dusmankonum1; //descrivi nemico1 x posizione int dusmankonum2; //descrivi nemico2 x posizione int dusmankonum3; //descrivi nemico3 x posizione int dusmankonum4; //descrivi nemico4 x posizione int dusmankonum5; //descrivi nemico5 x posizione int dusmaninYdekonumu;
void oyunEkrani(){ //imposta schermata di gioco
lcd.clrScr(); lcd.drawRect(0, 0, 47, 47); //disegniamo il rettangolo lcd.setFont(SmallFont); //imposta il carattere lcd.print("skor", 57, 1); //print score lcd.print("hiz", 60, 24); //velocità di stampa lcd.setFont(MediumNumbers); //imposta il carattere lcd.printNumI(skor, 55, 8); //ottenere il punteggio lcd.printNumI(hiz, 63, 32); //ottieni velocità lcd.update(); }
void dusmanAracidurum(int yer, int asama){ //imposta le posizioni per le forme nemiche
if(yer==1){ lcd.drawBitmap(2, asama, dusmanAraci, 7, 7);lcd.update();}//if location=1 disegna il nemico forma questa posizione if(yer==2){ lcd.drawBitmap(10, asama, dusmanAraci, 7, 7);lcd.update();} if(yer==3){ lcd.drawBitmap(18, asama, dusmanAraci, 7, 7);lcd.update(); } if(yer==4){ lcd.drawBitmap(26, asama, dusmanAraci, 7, 7);lcd.update();} if(yer==5){ lcd.drawBitmap(34, asama, dusmanAraci, 7, 7);lcd.update();} if(yer==6){ lcd.drawBitmap(42, asama, dusmanAraci, 7, 7);lcd.update();} }
void oyunbitti(){ //se falliamo, il gioco finisce
while(1){ ritardo(100); //aspetta 1 millisecondo lcd.clrScr(); lcd.setFont(SmallFont); lcd.print("OYUN BITTI", CENTRO, 8); //print game over lcd.print("skorunuz=", 3, 30); //stampa il tuo punteggio lcd.setFont(MediumNumbers); lcd.printNumI(skor, 60, 25); //ottieni l'ultimo punteggio lcd.update(); } }
void setup() {
pinMode(BL, OUTPUT); //imposta la retroilluminazione Output pinMode(xpin, INPUT); //imposta x pin come input 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, 350); oyunEkrani();
//joyistic durumu… //imposta la posizione del joystick…
int durumx=analogRead(xpin); if(durumx <300 && pozisyon!=1 && kontrol==true){ //if location!=1, x state600 && pozisyon!=6 && 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(durumx >300 && durumx <600){ kontrol=true; } //pozisyon durumu… //posizione stato… if(pozisyon==1){ //if location=1; lcd.drawBitmap(2, 41, arac, 7, 7);lcd.update();}//disegna la nostra nave if(pozisyon==2){ lcd.drawBitmap(10, 41, arac, 7, 7); lcd.update();} if(pozisyon==3){ lcd.drawBitmap(18, 41, arac, 7, 7);lcd.update();} if(pozisyon==4){ lcd.drawBitmap(26, 41, arac, 7, 7);lcd.update();} if(pozisyon==5){ lcd.drawBitmap(34, 41, arac, 7, 7);lcd.update();} if(pozisyon ==6){ lcd.drawBitmap(42, 41, arac, 7, 7);lcd.update();}
if(dusmanoldu){ //se la forma del nemico è morta, controlla se sono morti
dusmankonum1=pozisyon; //disegna la prima forma del nemico dusmankonum2=casuale(0, 6);//disegna un'altra forma del nemico da qualche parte dusmankonum3=casuale(0, 6); dusmankonum4=casuale(0, 6); dusmankonum5=casuale(0, 6); dusmaninYdekonumu=0; //porta il nemico dall'alto dusmanoldu=false;} //il nemico viene ricreato in modo che non sia morto
dusmanAracidurum(dusmankonum1, dusmaninYdekonumu);dusmaninYdekonumu++; //disegna la prima forma del nemico e ottienila dall'alto verso il basso
dusmanAracidurum(dusmankonum2, dusmaninYdekonumu);dusmaninYdekonumu++; //disegna la seconda forma del nemico e prendila dall'alto verso il basso dusmanAracidurum(dusmankonum3, dusmaninYdekonumu);dusmaninYdekonumu++; dusmanAracidurum(dusmankonum4, dusmaninYdekonumu);dusmaninYdekonumu++; if(dusmaninYdekonumu>35 && ((dusmankonum1 == posizione)||(dusmankonum2 == posizione)||(dusmankonum3 == posizione)||(dusmankonum4 == posizione))){ //se la nostra forma tocca le forme del nemico oyunbitti(); //il gioco è finito }
if(dusmaninYdekonumu >42){//se la nostra forma fugge dai nemici
dusmanoldu = vero; //uccidi le forme nemiche skor++; //aumenta di uno ad uno il punteggio }
//skora gore hizi artiriyoruz //aumenta la velocità in base al punteggio
if (skor>=0 && skor=10 && skor=20 && skor=30 && skor=40 && skor=50){ hiz=6; ritardo(5); }
}
Passaggio 4: CODICE BITMAP
Inoltre, devi includere la grafica bitmap per le forme. Deve essere un file.c.
#include //include per la funzione programma
const unsigned char arac PROGMEM = { //la nostra forma bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
const unsigned char dusmanAraci PROGMEM = { //bitmap della nave nemica
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };
Passaggio 5: grazie per la visualizzazione
Significato di alcune parole:
Oyun => Gioco
Arac = > Forma
Dusman => Nemico
controllo = >controllo
Konum, Yer => Posizione
Oyun Bitti => Fine del gioco
Skor => Punteggio
Hiz => Velocità
Consigliato:
Orologio a 7 Segmenti Versione 2: 4 Passi
Orologio a 7 segmenti Versione 2: Ciao! Dopo una richiesta da parte dell'utente di Instructables in merito alla disponibilità del formato 12h, ho approfittato per apportare modifiche sostanziali al progetto originale. Durante l'utilizzo della versione 1 ho sentito la necessità di realizzare una versione stand-alone, quindi l'ho reso possibile
Arduino Space Race Game Versione _1: 5 passaggi
Arduino Space Race Game Version _1: Ehi amici. Oggi ti mostrerò come puoi creare un gioco di corse spaziali con schermo LCD5110 e joystick. Diamo un'occhiata ai passaggi
Β Misuratore Versione II (più Stabile e Preciso): 6 Passi
Β Misuratore versione II (più stabile e preciso): https://www.instructables.com/id/Beta-Meter/Il misuratore versione I β era abbastanza preciso ma la sorgente di corrente non era costante con la tensione di ingresso (Vcc). Il misuratore della versione II è abbastanza stabile, ovvero il valore corrente non cambia molto con il cambiamento di i
Space Race: semplice gioco Arduino Clicker da fare con i bambini: 7 passaggi
Space Race: semplice gioco Arduino Clicker da fare con i bambini: ¡Sto caricando un video che mostra come funziona oggi! Resta sintonizzato Divertiamoci con un istruttore a tema spaziale che può essere realizzato insieme ai bambini e che in seguito può essere apprezzato da loro da soli come un giocattolo. Puoi usarlo come mezzo per insegnare loro la storia della co
Joy Slippers Versione 2: 6 Passi (con Immagini)
Joy Slippers Versione 2: Queste pantofole hanno 4 sensori di pressione analogici incorporati. Possono essere usati per inserire i valori Su, Giù, Sinistra e Destra nel computer sostituendo il mouse, il joystick… Visita il sito web di JoySlippers >> http://www.joyslippers.plusea.at/ Questo ins