Obsah:
Video: Vesmírna závodná hra Verzia 2: 5 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
Ahojte, všetci. Pred touto verziou hry som vydal prvú verziu hry. Dnes vám ukážem hru Space Race Game 2. Pozrime sa na kroky …
Krok 1: ČASTI
Tu je zoznam dielov, ktoré som použil na výrobu tohto projektu:
- Arduino UNO
- Modul joysticku
- Prepojovacie vodiče (muž - muž a muž - žena)
- Breadboard
Krok 2: SCHÉMA
VCC -> Arduino 5V
BL -> Arduino pin 3
GND -> Arduino GND
CLK (SCLK) -> Arduino pin 8
DIN (MOSI) -> Arduino pin 9
DC -> Arduino pin 10
CE alebo CS -> Arduino pin 12
RST (RESET) -> Arduino pin 11
Krok 3: KÓD
Kód obsahuje vysvetlenia funkcií kódu. Ľahko to pochopíte. Ak máte problém, môžete ma kontaktovať.
#zahrnúť
LCD5110 lcd (8, 9, 10, 11, 12); // (clk, cin, dc,, rst, ce)
boolean kontrol = true;
booleovský dusmanoldu = pravda;
extern uint8_t SmallFont ; // popíšte písma
extern uint8_t MediumNumbers ; extern uint8_t arac ; // opíš náš tvar extern uint8_t dusmanAraci ; // popísať tvar nepriateľa const int xpin = A0; // joystick x pin char pozisyon = 3; // popíšte polohu, naše miesto začiatku tvaru 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // popis nepriatela1 x poloha int dusmankonum2; // popis nepriatela2 x poloha int dusmankonum3; // popis nepriatela3 x poloha int dusmankonum4; // popis nepriatela4 x poloha int dusmankonum5; // popis nepriatela5 x poloha int dusmaninYdekonumu;
void oyunEkrani () {// nastavenie obrazovky hry
lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // nakreslíme obdĺžnik lcd.setFont (SmallFont); // set font lcd.print ("skor", 57, 1); // tlač skóre lcd.print ("hiz", 60, 24); // rýchlosť tlače lcd.setFont (MediumNumbers); // set font lcd.printNumI (skor, 55, 8); // získať skóre lcd.printNumI (hiz, 63, 32); // získajte rýchlosť lcd.update (); }
void dusmanAracidurum (int yer, int asama) {// nastavenie miest pre nepriateľské tvary
if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if location = 1 draw nepřátelský tvar toto miesto if (yer == 2) {lcd.drawBitmap (10, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 3) {lcd.drawBitmap (18, asama, dusmanAraci, 7, 7); lcd.update (); } if (yer == 4) {lcd.drawBitmap (26, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 5) {lcd.drawBitmap (34, asama, dusmanAraci, 7, 7); lcd.update ();} if (yer == 6) {lcd.drawBitmap (42, asama, dusmanAraci, 7, 7); lcd.update ();}}
void oyunbitti () {// ak zlyháme, hra sa skončí
while (1) {delay (100); // počkajte 1 milisekundu lcd.clrScr (); lcd.setFont (SmallFont); lcd.print („OYUN BITTI“, CENTRUM, 8); // tlač hry cez lcd.print ("skorunuz =", 3, 30); // vytlačte svoje skóre lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // získanie posledného skóre lcd.update (); }}
neplatné nastavenie () {
pinMode (BL, VÝSTUP); // nastavenie podsvietenia Výstup pinMode (xpin, INPUT); // nastav x pin ako vstup lcd. InitLCD (); // inicializácia obrazovky LCD lcd.setContrast (55); // nastavenie kontrastu (približne 0 až 127) Serial.begin (9600); // spustenie sériovej komunikácie}
prázdna slučka () {
analogWrite (BL, 350); oyunEkrani ();
// joyistické durumu … // nastavenie umiestnenia joysticku …
int durumx = analogRead (xpin); if (durumx <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 6 && kontrol == true) {// if location! = 3, x state> 600 a ovládanie je pravda pozisyon ++; // zväčšenie polohy, to znamená posunutie tvaru doprava kontrol = false; } else if (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu … // stav polohy … if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // nakreslite našu loď, ak (pozisyon == 2) {lcd.drawBitmap (10, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 4) {lcd.drawBitmap (26, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 5) {lcd.drawBitmap (34, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 6) {lcd.drawBitmap (42, 41, arac, 7, 7); lcd.update ();}
if (dusmanoldu) {// ak je tvar nepriatela mrtvy, skontroluj ci su mrtvy
dusmankonum1 = pozisyon; // nakreslite prvý tvar nepriateľa dusmankonum2 = náhodný (0, 6); // nakreslite niekde iný tvar nepriateľa dusmankonum3 = náhodný (0, 6); dusmankonum4 = náhodný (0, 6); dusmankonum5 = náhodný (0, 6); dusmaninYdekonumu = 0; // priveďte nepriateľa zhora dusmanoldu = false;} // nepriateľ sa obnoví, aby neboli mŕtvi
dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // nakreslite prvý tvar nepriateľa a získajte ho zhora nadol
dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // nakreslite druhý tvar nepriateľa a získajte ho zhora nadol dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon)))) {// ak sa náš tvar dotýka nepriateľských tvarov oyunbitti (); //hra skončila }
if (dusmaninYdekonumu> 42) {// ak náš tvar unikne pred nepriateľmi
dusmanoldu = pravda; // zabíjanie nepriateľských tvarov skor ++; // zvyšujte skóre jeden po druhom}
// skora gore hizi artiriyoruz // zvýšenie rýchlosti podľa skóre
ak (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; oneskorenie (5); }
}
Krok 4: KÓD BITMAPY
Ďalej musíte pre tvary zahrnúť bitmapovú grafiku. Musí to byť súbor.c.
#include // include pre funkciu progmem
const unsigned char arac PROGMEM = {// naša bitmapa tvaru
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusmanAraci PROGMEM = {// bitmapa nepriateľskej lode
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Krok 5: Ďakujeme za zobrazenie
Význam niektorých slov:
Oyun => Hra
Arac => Tvar
Dusman => Nepriateľ
kontroler => kontrola
Konum, Yer => Poloha
Oyun Bitti => Hra sa skončila
Skor => Skóre
Hiz => Rýchlosť
Odporúča:
Detská vesmírna loď: 10 krokov
Detská vesmírna loď: Ako dieťa som vždy chcel postaviť jeden z nich. Teraz, keď som sám mal dve malé deti, mal som dobrú výhovorku, aby som to nakoniec zvládol. Prehľad: Rám kozmickej lode bol vyrobený z dreva a bol pokrytý preglejkovými panelmi. Elektronika bola väčšinou napájaná 12 V
Elektromyografická vesmírna loď: 6 krokov
Elektromyografická vesmírna loď: Zdravím všetkých a vitajte v našom projekte! V prvom rade by sme sa chceli predstaviť. Sme skupina troch študentov „Creative Electronics“, modulu 4. ročníka BEng Electronic Engineering na Univerzite v Malage, Telecomskej škole
Google AIY VoiceHAT pre súpravu Raspberry Pi (verzia MagPi 57, verzia 2017): 6 krokov (s obrázkami)
Google AIY VoiceHAT pre Raspberry Pi Kit (verzia MagPi 57, verzia 2017): Tipy na zostavenie hlasovej sady MagPi sa nenašli v návodoch
Rýchla reakčná hra: Verzia na diaľku: 5 krokov (s obrázkami)
Rýchla reakčná hra: Vzdialená verzia: Ahoj. Toto je návod, ako vytvoriť hru, ktorá testuje váš reakčný čas a pocit vzdialenosti. Tento projekt je založený na starom projekte, do ktorého som zapojil dvoch hráčov a súťažili o to, kto rýchlejšie zareaguje kliknutím na tlačidlo
Ručne maľovaná retro/vesmírna arkádová skriňa: 6 krokov (s obrázkami)
Ručne maľovaná retro/vesmírna arkádová skriňa: Vitajte v mojom sprievodcovi vytvorením vlastnej stolnej retro arkádovej skrine s tematikou vesmíru/retro hier! Na tento návod budete potrebovať: Dosku Raspberry Pi 3 alebo 2 (RSComponents alebo Pimoroni) &libra; 28- 34 Kábel Micro USB na napájanie maliny Pi &libra; 28-1