Cuprins:
- Pasul 1: NEVOI
- Pasul 2: SCHEMA
- Pasul 3: COD
- Pasul 4: COD BITMAP
- Pasul 5: Mulțumiri pentru vizualizare
Video: Arduino Space Race Joc versiunea _1: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Hei prieteni. Astăzi, ți-am arătat cum poți face un joc de curse spațiale cu ecran LCD5110 și joystic. Să aruncăm pași …
Pasul 1: NEVOI
Iată o listă de părți pe care le-am folosit pentru a realiza acest proiect:
- Arduino UNO
- Modulul Joystick
- Jumper Wires (de la bărbat la bărbat și de la bărbat la femeie)
- Pană de pâine
Pasul 2: SCHEMA
VCC -> Arduino 5V
BL -> Pinul Arduino 3
GND -> Arduino GND
CLK (SCLK) -> pinul Arduino 8
DIN (MOSI) -> Arduino pin 9
DC -> Arduino pin 10
CE sau CS -> Pinul Arduino 12
RST (RESET) -> pinul Arduino 11
Pasul 3: COD
Codul are explicații despre funcțiile codului. O vei înțelege cu ușurință. Dacă aveți o problemă, mă puteți contacta.
#include
LCD5110 lcd (8, 9, 10, 11, 12); // (clk, din, dc, rst, ce)
int BL = 3;
extern uint8_t SmallFont ; // descrieți fonturile extern uint8_t MediumNumbers ; extern uint8_t arac ; // descrie forma noastră extern uint8_t dusman_araci ; // desribe inamic shape const int xpin = A0; // joystick x pin char pozi = 2; // descrie locația, forma noastră începe locația 2 boolean kontrol = true; boolean dusmanOldu = adevărat; int skor = 0; int hiz = 0; int dusmanKonumu1; // descrie inamicul1 x locația int dusmanKonumu2; // descrie inamic2 x locație int dusmaninYdeKonumu; // descrie inamicii y locația
void dusmanAraci (int yer, int asama) {// setează locații pentru forme inamice
if (yer == 1) {// if location = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // desenează forma inamicului} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}
void oyunBitti () {// dacă eșuăm, jocul s-a terminat
while (1) {întârziere (100); // așteptați 1 milisecundă lcd.clrScr (); // ștergeți ecranul lcd.setFont (SmallFont); // set font lcd.print ("GAME OVER", CENTER, 20); // print lcd.update (); // actualizați ecranul}}
void setup () {pinMode (BL, OUTPUT); // set back light Output lcd. InitLCD (); // inițializați ecranul lcd lset.setContrast (55); // set contrast (amound 0 to 127) Serial.begin (9600); // începe comunicația în serie}
bucla nulă () {
analogWrite (BL, 200);
// set ecran ecran lcd.drawRect (0, 0, 47, 47); // desenăm dreptunghi lcd.setFont (SmallFont); // set font lcd.print ("skor", 53, 0); // printf scor lcd.setFont (MediumNumbers); // set font lcd.printNumI (skor, 59, 7); // obține scor lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // viteza de imprimare lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // get speed lcd.update (); //Actualizați
// setați locația joyistick int x = analogRead (xpin); if (x <300 && poziție! = 1 && kontrol == true) {// if location! = 1, x state600 && position! = 3 && kontrol == true) {// if location! = 3, x state> 600 și controlul este adevărat pozi ++; // măriți locația înseamnă că mutați forma spre dreapta kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // pentru învățarea stării x // setați locația formei noastre lcd.clrScr (); // ștergeți ecranul dacă (poziția == 1) {// dacă locația = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // draw our ship if (pozi == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}
if (poziție == 3) {
lcd.drawBitmap (34, 37, arac, 12, 8);}
if (dusmanOldu) {// dacă forma inamicului este moartă, verificați dacă sunt morți
dusmanKonumu1 = poziție; // desenează prima formă inamică dusmanKonumu2 = aleatoriu (0, 4); // desenează o altă formă inamică undeva dusmaninYdeKonumu = 0; // aduce dușmanul de sus dusmanOldu = fals;} // inamicul este recreat astfel încât să nu fie morți dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // desenează prima formă inamică și obține-o de sus în jos dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // desenează a doua formă de inamic și obține-o de sus în jos dacă (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == poziție) || (dusmanKonumu2 == poziție))) {// dacă forma noastră atinge forme inamice oyunBitti ();} // jocul s-a terminat dacă (dusmaninYdeKonumu> 40) {// dacă forma noastră scapă de dușmani dusmanOldu = adevărat; // ucide formele inamice skor ++;} // mărește unul câte unul scorul // mărește viteza în funcție de scor dacă (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; întârziere (40); }}
Pasul 4: COD BITMAP
Mai mult, trebuie să includeți grafica bitmap pentru forme. Trebuie să fie un fișier.c și același nume cu numele de cod. De asemenea, trebuie să fie în același fișier.
// ------------------------------------------------ ------------------------------ // Fișier generat de LCD Assistant // https://en.radzio.dxp.pl / bitmap_converter / // --------------------------------------------- --------------------------------- #include // include pentru funcția progmem
const unsigned char arac PROGMEM = {// forma noastră bitmap
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusman_araci PROGMEM = {// bitmap navei inamice
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Pasul 5: Mulțumiri pentru vizualizare
Înainte de a începe să-mi împărtășesc proiectele, am codificat în cuvinte turcești, așa că nu puteam întâmpla fiecare cuvânt în engleză. Aici traducerea cuvintelor care folosesc acest proiect, Oyun = Joc
Arac = Formă
Dusman = Enemy
kontrol = control
Konum, Yer = Locație
Oyun Bitti = Game Over
Skor = Scor
Hiz = Viteza
Recomandat:
Controler de joc DIY bazat pe Arduino - Controler de joc Arduino PS2 - Jucând Tekken cu DIY Arduino Gamepad: 7 pași
Controler de joc DIY bazat pe Arduino | Controler de joc Arduino PS2 | Jucând Tekken cu DIY Arduino Gamepad: Bună, băieți, jocul este întotdeauna distractiv, dar jocul cu propriul controler personalizat DIY este mai distractiv
Joc Arduino Space Rocks: 3 pași
Arduino Space Rocks Game: Fie că sunt jucate pe computer, pe telefon, pe o consolă de jocuri sau pe o cutie independentă, multe jocuri video includ un element de evitare a obstacolelor. Sigur, pot exista puncte acordate pentru colectarea de jetoane sau găsirea drumului printr-un labirint
8x16 LED Matrix Pong Joc (2 palete pe versiunea jucătorului): 3 pași
Joc 8x16 LED Matrix Pong (2 versiuni pe versiune pentru jucător): M-am inspirat din multe variante ale jocului clasic Pong implementat pe Arduino utilizând o matrice LED 8x8. În acest instructiv, vă voi arăta cum să construiți versiunea mea preferată de Pong, care are două palete - atacant și portar - per jucător
Space Race Game Versiunea 2: 5 pași
Space Race Game Versiunea 2: Hei tuturor. Înainte de această versiune a jocului, am publicat prima versiune a jocului. Astăzi, ı vă va arăta jocul Space Race versiunea 2. Să vedem pași
Consola de joc Arduino Pocket + A-Maze - Joc Maze: 6 pași (cu imagini)
Arduino Pocket Game Console + A-Maze - Maze Game: Bine ați venit la primul meu instructable! Proiectul pe care vreau să îl împărtășesc astăzi este jocul de labirint Arduino, care a devenit o consolă de buzunar la fel de capabilă ca Arduboy și consolele similare bazate pe Arduino. Poate fi intermitent cu jocurile mele (sau ale dvs.) viitoare datorită expo