Satura rādītājs:
- 1. darbība: VAJADZĪBAS
- 2. solis: SHĒMA
- 3. darbība: KODĒT
- 4. darbība: KODĒT BITMAP
- 5. darbība: PALDIES PAR SKATĪŠANU
Video: Arduino kosmosa sacīkšu spēles versija _1: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Č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
Š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
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
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:
Uzlabojiet kosmosa palaišanu, izmantojot Kerbal kosmosa programmas fizisko izvietošanas pogu: 6 soļi
Uzlabojiet kosmosa palaišanu, izmantojot Kerbal kosmosa programmas fizisko izvietošanas pogu: Es nesen paņēmu Kerbal kosmosa programmas demonstrācijas versiju. Kerbala kosmosa programma ir simulatora spēle, kas ļauj izstrādāt un palaist raķetes un virzīties uz tāliem pavadoņiem un planētām. Es joprojām cenšos veiksmīgi nolaisties uz Mēness (o
Kosmosa sacensību spēles versija 2: 5 soļi
Kosmosa sacīkšu spēles versija 2: Hei visiem. Pirms šīs spēles versijas es publicēju spēles pirmo versiju. Šodien es jums parādīšu Space Race Game 2. versiju. Apskatīsim soļus
Kā augšupielādēt spēles Arduboy un 500 spēles Flash grozā: 8 soļi
Kā augšupielādēt spēles Arduboy un 500 spēles Flash grozā: es izveidoju mājās gatavotu Arduboy ar sērijas zibatmiņu, kurā var uzglabāt ne vairāk kā 500 spēles, ko spēlēt uz ceļa. Es ceru padalīties ar to, kā tajā ielādēt spēles, tostarp par to, kā saglabāt spēles sērijas zibatmiņā un izveidot savu konsolidēto spēļu paketi
KerbalController: pielāgots vadības panelis raķešu spēles Kerbal kosmosa programmai: 11 soļi (ar attēliem)
KerbalController: pielāgots vadības panelis raķešu spēlei Kerbal kosmosa programma: Kāpēc veidot KerbalController? Nu, tāpēc, ka pogu nospiešana un fizisko slēdžu izmešana ir daudz svarīgāka nekā noklikšķināšana uz peles. It īpaši, ja tas ir liels sarkans drošības slēdzis, kur vispirms jāatver vāks, velciet slēdzi
Sacīkšu spēles programmēšana no nulles: 7 soļi
Sacīkšu spēles programmēšana nulles režīmā: šī apmācība parādīs, kā ieprogrammēt sacīkšu spēli MIT's Scratch iekšpusē