Turinys:

„Arduino Space Race“žaidimo versija _1: 5 žingsniai
„Arduino Space Race“žaidimo versija _1: 5 žingsniai

Video: „Arduino Space Race“žaidimo versija _1: 5 žingsniai

Video: „Arduino Space Race“žaidimo versija _1: 5 žingsniai
Video: Dienoraštis, kuriame yra baisių paslapčių. Perėjimas. Geraldas Durrellas. Mistikas. Siaubas 2024, Lapkritis
Anonim
Image
Image

Ei draugai. Šiandien aš parodysiu, kaip galite sukurti kosmoso lenktynių žaidimą naudodami LCD5110 ekraną ir vairasvirtę. Pažvelkime į žingsnius…

1 žingsnis: POREIKIAI

SCHEMA
SCHEMA

Čia yra dalių, kurias naudoju kurdamas šį projektą, sąrašas:

  • Arduino UNO
  • Vairasvirtės modulis
  • Jumperiniai laidai (nuo vyrų iki vyrų ir vyrų nuo moterų)
  • Bandomoji Lenta

2 žingsnis: SCHEMA

VCC -> Arduino 5V

BL -> „Arduino“kaištis 3

GND -> Arduino GND

CLK (SCLK) -> „Arduino“kaištis 8

DIN (MOSI) -> „Arduino“kaištis 9

DC -> „Arduino“kaištis 10

CE arba CS -> „Arduino“kaištis 12

RST (RESET) -> „Arduino“kaištis 11

3 žingsnis: KODAS

KODAS
KODAS

Kodas turi kodo funkcijų paaiškinimus. Jūs lengvai tai suprasite. Jei turite problemų, galite susisiekti su manimi.

#įtraukti

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

int BL = 3;

extern uint8_t SmallFont ; // aprašyti šriftus extern uint8_t MediumNumbers ; extern uint8_t arac ; // apibūdinti mūsų formą išorinis uint8_t dusman_araci ; // aprašyti priešo formą const int xpin = A0; // vairasvirtė x kaištis char pozisyon = 2; // aprašyti vietą, mūsų formos pradžios vietą 2 boolean kontrol = true; boolean dusmanOldu = tiesa; int skor = 0; int hiz = 0; int dusmanKonumu1; // aprašyti priešą1 x vietą int dusmanKonumu2; // aprašyti priešą2 x vieta int dusmaninYdeKonumu; // apibūdinti priešus ir vietą

void dusmanAraci (int yer, int asama) {// nustatyti priešo formų vietas

if (yer == 1) {// jei vieta = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // piešti priešo formą} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } if (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// jei mums nepavyks, žaidimas baigsis

o (1) {uždelsimas (100); // palaukti 1 milisekundė lcd.clrScr (); // išvalyti ekraną lcd.setFont (SmallFont); // nustatyti šriftą lcd.print ("GAME OVER", CENTRAS, 20); // spausdinti lcd.update (); // atnaujinti ekraną}}

void setup () {pinMode (BL, OUTPUT); // nustatyti atgalinį šviesą Išvestis lcd. InitLCD (); // inicijuoti LCD ekraną lcd.setContrast (55); // nustatyti kontrastą (nuo 0 iki 127) Serial.begin (9600); // pradėti serijinį bendravimą}

void loop () {

analogWrite (BL, 200);

// nustatyti žaidimo ekraną lcd.drawRect (0, 0, 47, 47); // brėžiame stačiakampį lcd.setFont (SmallFont); // nustatyti šriftą lcd.print ("skor", 53, 0); // printf rezultatas lcd.setFont (MediumNumbers); // nustatyti šriftą lcd.printNumI (skor, 59, 7); // gauti rezultatą lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // spausdinimo greitis lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // gauti greitį lcd.update (); // atnaujinti

// nustatyti džiaugsmo lazdelės vietą 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 ir valdymas yra tikras pozisyon ++; // padidinti vietą tai reiškia perkelti figūrą į dešinę kontrol = false; } else if (x> 300 && x <600) {kontrol = true; } Serial.println (x); // mokantis x būsenos // nustatykite mūsų formos vietą lcd.clrScr (); // išvalyti ekraną, jei (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // nupieškite mūsų laivą, jei (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

jei (pozisyon == 3) {

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

if (dusmanOldu) {// jei priešo forma negyva, patikrinkite, ar jie negyvi

dusmanKonumu1 = pozisyon; // piešti pirmąją priešo formą dusmanKonumu2 = atsitiktinis (0, 4); // kur nors nupiešti kitą priešo figūrą dusmaninYdeKonumu = 0; // atnešti priešą iš viršaus dusmanOldu = false;} // priešas atkurtas, kad jie nebūtų mirę dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // nupieškite pirmąją priešo figūrą ir gaukite ją iš viršaus į apačią dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // nupieškite antrąją priešo formą ir gaukite ją iš viršaus į apačią, jei (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))) {// jei mūsų forma liečia priešo formas oyunBitti ();} // žaidimas baigtas, jei (dusmaninYdeKonumu> 40) {// jei mūsų figūra bėga nuo priešų dusmanOldu = tiesa; // nužudyti priešo formas skor ++;} // padidinti rezultatą po vieną // padidinti greitį pagal rezultatą, jei (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; vėlavimas (40); }}

4 žingsnis: KODUOKITE BITMAP

Be to, turite įtraukti formų bitų žemėlapių grafiką. Tai turi būti.c failas ir tas pats pavadinimas su kodo pavadinimu. Be to, jis turi būti tame pačiame faile.

// ------------------------------------------------ ------------------------------ // LCD asistento sukurtas failas // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // include, skirtas progmem funkcijai

const unsigned char arac PROGMEM = {// mūsų formos bitkartė

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

const unsigned char dusman_araci PROGMEM = {// priešo laivo bitmap

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

5 žingsnis: AČIŪ už peržiūrą

AČIŪ už peržiūrą
AČIŪ už peržiūrą

Prieš pradėdama dalintis savo projektais, aš kodavau turkiškais žodžiais, todėl negalėjau atsitiktinai ištarti kiekvieno žodžio į anglų kalbą. Čia yra žodžių vertimas, kuriuo naudoju šį projektą, Oyun = Žaidimas

Arac = Forma

Dusmanas = priešas

kontrol = kontrolė

Konum, Yer = Vieta

Oyun Bitti = Žaidimas baigtas

Skor = balas

Hiz = greitis

Rekomenduojamas: