Satura rādītājs:

Arduino kosmosa sacīkšu spēles versija _1: 5 soļi
Arduino kosmosa sacīkšu spēles versija _1: 5 soļi

Video: Arduino kosmosa sacīkšu spēles versija _1: 5 soļi

Video: Arduino kosmosa sacīkšu spēles versija _1: 5 soļi
Video: Leap Motion SDK 2024, Novembris
Anonim
Image
Image

Čau draugi. Šodien es ganna parādīšu, kā jūs varat izveidot kosmosa sacīkšu spēli, izmantojot LCD5110 ekrānu un kursorsviru. Apskatīsim soļus…

1. darbība: VAJADZĪBAS

SHĒMA
SHĒMA

Šeit ir to daļu saraksts, kuras es izmantoju, lai izveidotu šo projektu:

  • Arduino UNO
  • Kursorsviras modulis
  • Jumper vadi (no vīrieša uz vīrieti un no vīrieša uz sievieti)
  • Maizes dēlis

2. solis: SHĒMA

VCC -> Arduino 5V

BL -> Arduino tapa 3

GND -> Arduino GND

CLK (SCLK) -> Arduino tapa 8

DIN (MOSI) -> Arduino tapa 9

DC -> Arduino tapa 10

CE vai CS -> Arduino tapa 12

RST (RESET) -> Arduino tapa 11

3. darbība: KODĒT

KODS
KODS

Kodā ir koda funkciju skaidrojumi. Jūs to viegli sapratīsit. Ja jums ir problēma, varat sazināties ar mani.

#iekļaut

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

int BL = 3;

extern uint8_t SmallFont ; // aprakstīt fontus extern uint8_t MediumNumbers ; extern uint8_t arac ; // aprakstiet mūsu formu extern uint8_t dusman_araci ; // aprakstīt ienaidnieka formu const int xpin = A0; // kursorsviru x pin char pozisyon = 2; // aprakstiet atrašanās vietu, mūsu formas sākuma vietu 2 boolean kontrol = true; Būla dusmanOldu = taisnība; int skor = 0; int hiz = 0; int dusmanKonumu1; // aprakstīt ienaidnieku1 x atrašanās vieta int dusmanKonumu2; // aprakstīt ienaidnieku2 x atrašanās vieta int dusmaninYdeKonumu; // aprakstiet ienaidniekus un atrašanās vietu

void dusmanAraci (int yer, int asama) {// noteikt vietas ienaidnieka formām

ja (yer == 1) {// ja atrašanās vieta = 1; lcd.drawBitmap (2, asama, dusman_araci, 12, 8); // uzzīmēt ienaidnieka formu} if (yer == 2) {lcd.drawBitmap (18, asama, dusman_araci, 12, 8); } ja (yer == 3) {lcd.drawBitmap (34, asama, dusman_araci, 12, 8); }}

void oyunBitti () {// ja mums neizdodas, spēle beigusies

kamēr (1) {kavēšanās (100); // pagaidiet 1 milisekundi lcd.clrScr (); // notīriet ekrānu lcd.setFont (SmallFont); // iestatīt fontu lcd.print ("GAME OVER", CENTRS, 20); // drukāt lcd.update (); // atjaunināt ekrānu}}

void setup () {pinMode (BL, OUTPUT); // iestatīt pretgaismu Output lcd. InitLCD (); // inicializēt LCD ekrānu lcd.setContrast (55); // iestatīt kontrastu (no 0 līdz 127) Serial.begin (9600); // sākt sērijveida saziņu}

void loop () {

analogWrite (BL, 200);

// iestatīt spēles ekrānu lcd.drawRect (0, 0, 47, 47); // zīmējam taisnstūri lcd.setFont (SmallFont); // iestatīt fontu lcd.print ("skor", 53, 0); // printf score lcd.setFont (MediumNumbers); // iestatīt fontu lcd.printNumI (skor, 59, 7); // iegūt rezultātu lcd.setFont (SmallFont); lcd.print ("hiz", 56, 25); // drukas ātrums lcd.setFont (MediumNumbers); lcd.printNumI (hiz, 59, 32); // iegūt ātrumu lcd.update (); //Atjaunināt

// iestatīt džoistika atrašanās vietu 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 un kontrole ir patiesa pozisyon ++; // palielināt atrašanās vietu tas nozīmē pārvietot formu uz labo kontrolieri = false; } cits if (x> 300 && x <600) {kontrol = true; } Sērijas.println (x); // mācībām x stāvoklis // iestatiet mūsu formas atrašanās vietu lcd.clrScr (); // notīriet ekrānu, ja (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 37, arac, 12, 8);} // uzzīmējiet mūsu kuģi, ja (pozisyon == 2) {lcd.drawBitmap (18, 37, arac, 12, 8);}

ja (pozisyon == 3) {

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

ja (dusmanOldu) {// ja ienaidnieka forma ir mirusi, pārbaudiet, vai tie ir miruši

dusmanKonumu1 = pozisyon; // izdarīt pirmo ienaidnieka formu dusmanKonumu2 = nejauši (0, 4); // kaut kur uzzīmēt citu ienaidnieka formu dusmaninYdeKonumu = 0; // ienest ienaidnieku no augšas dusmanOldu = false;} // ienaidnieks tiek atjaunots, lai tie nebūtu miruši dusmanAraci (dusmanKonumu1, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // uzzīmēt pirmo ienaidnieka formu un iegūt to no augšas uz leju dusmanAraci (dusmanKonumu2, dusmaninYdeKonumu); dusmaninYdeKonumu ++; // uzzīmējiet otro ienaidnieka formu un iegūstiet to no augšas uz leju, ja (dusmaninYdeKonumu> 22 && ((dusmanKonumu1 == pozisyon) || (dusmanKonumu2 == pozisyon)))) {// ja mūsu forma pieskaras ienaidnieka formām oyunBitti ();} // spēle ir beigusies, ja (dusmaninYdeKonumu> 40) {// ja mūsu forma aizbēg no ienaidniekiem dusmanOldu = true; // nogalināt ienaidnieka formas skor ++;} // palielināt rezultātu pa vienam // palielināt ātrumu pēc rezultāta, ja (skor> = 0 && skor10 && skor20 && skor30 && skor <= 40) {hiz = 3; kavēšanās (40); }}

4. darbība: KODĒT BITMAP

Turklāt formām ir jāiekļauj bitkartes grafika. Tam jābūt.c failam un tam pašam nosaukumam ar koda nosaukumu. Turklāt tam jābūt vienā failā.

// ------------------------------------------------ ------------------------------ // LCD asistenta ģenerēts fails // https://en.radzio.dxp.pl /bitmap_converter/// --------------------------------------------- --------------------------------- #include // iekļaut progmem funkcijai

const unsigned char arac PROGMEM = {// mūsu formas bitkarte

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

const unsigned char dusman_araci PROGMEM = {// ienaidnieka kuģa bitkarte

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

5. darbība: PALDIES PAR SKATĪŠANU

PALDIES par skatīšanos
PALDIES par skatīšanos

Pirms es sāku dalīties ar saviem projektiem, es kodēts turku vārdos, lai es nevarētu izlasīt visus vārdus angļu valodā. Šeit vārdi tulkojumā, kas izmanto šo projektu, Oyun = Spēle

Arac = forma

Dusmans = ienaidnieks

kontrol = kontrole

Konum, Yer = Atrašanās vieta

Oyun Bitti = Spēle beigusies

Skor = Rezultāts

Hiz = Ātrums

Ieteicams: