Cuprins:

Arduino Space Race Joc versiunea _1: 5 pași
Arduino Space Race Joc versiunea _1: 5 pași

Video: Arduino Space Race Joc versiunea _1: 5 pași

Video: Arduino Space Race Joc versiunea _1: 5 pași
Video: Arduino Arcade Space Invaders - video game latest version 2024, Iulie
Anonim
Image
Image

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

SCHEMĂ
SCHEMĂ

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

COD
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

MULTUMESC PENTRU VIZUALIZARE
MULTUMESC 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: