Obsah:
Video: Vesmírná závodní hra Verze 2: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Čau všichni. Před touto verzí hry jsem vydal první verzi hry. Dnes vám ukážu Space Race Game verze 2. Podívejme se na kroky…
Krok 1: DÍLY
Zde je seznam dílů, které jsem použil k vytvoření tohoto projektu:
- Arduino UNO
- Modul joysticku
- Propojovací dráty (muž k muži a muž k ženě)
- Prkénko
Krok 2: SCHÉMA
VCC -> Arduino 5V
BL -> Pin Arduino 3
GND -> Arduino GND
CLK (SCLK) -> Arduino pin 8
DIN (MOSI) -> Arduino pin 9
DC -> Arduino pin 10
CE nebo CS -> Arduino pin 12
RST (RESET) -> Arduino pin 11
Krok 3: KÓD
Kód obsahuje vysvětlení funkcí kódu. Snadno to pochopíte. Pokud máte problém, můžete mě kontaktovat.
#zahrnout
LCD5110 lcd (8, 9, 10, 11, 12); // (clk, cin, dc,, rst, ce)
boolean kontrol = true;
boolean dusmanoldu = pravda;
extern uint8_t SmallFont ; // popište písma
extern uint8_t MediumNumbers ; extern uint8_t arac ; // popiš náš tvar extern uint8_t dusmanAraci ; // popsat tvar nepřítele const int xpin = A0; // joystick x pin char pozisyon = 3; // popište umístění, naše počáteční umístění tvaru 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // popiš nepřátelský1 x umístění int dusmankonum2; // popište nepřátelské2 x umístění int dusmankonum3; // popište nepřátelské3 x umístění int dusmankonum4; // popište nepřátelské4 x umístění int dusmankonum5; // popište nepřítele5 x umístění int dusmaninYdekonumu;
void oyunEkrani () {// nastavení obrazovky hry
lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // nakreslíme obdélník lcd.setFont (SmallFont); // set font lcd.print ("skor", 57, 1); // tisk skóre lcd.print ("hiz", 60, 24); // rychlost tisku lcd.setFont (MediumNumbers); // sada písem lcd.printNumI (skor, 55, 8); // získejte skóre lcd.printNumI (hiz, 63, 32); // získejte rychlost lcd.update (); }
void dusmanAracidurum (int yer, int asama) {// nastavení umístění nepřátelských tvarů
if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if location = 1 draw nepřátelský tvar toto umístění 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 () {// pokud selžeme, hra končí
while (1) {delay (100); // počkejte 1 milisekundu lcd.clrScr (); lcd.setFont (SmallFont); lcd.print („OYUN BITTI“, CENTRUM, 8); // tisk hry přes lcd.print ("skorunuz =", 3, 30); // vytiskněte své skóre lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // získání posledního skóre lcd.update (); }}
neplatné nastavení () {
pinMode (BL, VÝSTUP); // nastavení podsvícení Výstup pinMode (xpin, INPUT); // nastavit x pin jako vstup lcd. InitLCD (); // inicializace obrazovky LCD lcd.setContrast (55); // nastavení kontrastu (kolem 0 až 127) Serial.begin (9600); // zahájení sériové komunikace}
prázdná smyčka () {
analogWrite (BL, 350); oyunEkrani ();
// joyistické durumu … // nastavení umístění 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ádání je pravda pozisyon ++; // zvětšení umístění to znamená přesunout tvar doprava kontrol = false; } else if (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu … // stav pozice … if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // nakreslete naši loď if (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) {// pokud je tvar nepřítele mrtvý, zkontrolujte, zda je mrtvý
dusmankonum1 = pozisyon; // nakreslení prvního tvaru nepřítele dusmankonum2 = random (0, 6); // nakreslení někam jiného tvaru nepřítele dusmankonum3 = random (0, 6); dusmankonum4 = náhodný (0, 6); dusmankonum5 = náhodný (0, 6); dusmaninYdekonumu = 0; // přivést nepřítele shora dusmanoldu = false;} // nepřítel se znovu vytvoří, aby nebyli mrtví
dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // nakreslete první tvar nepřítele a získejte jej shora dolů
dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // nakreslete druhý tvar nepřítele a získejte jej odshora dolů dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon)))) {// pokud se náš tvar dotýká nepřátelských tvarů oyunbitti (); //hra skončila }
if (dusmaninYdekonumu> 42) {// pokud náš tvar unikne před nepřáteli
dusmanoldu = pravda; // zabíjení nepřátelských tvarů skor ++; // zvyšujte skóre jeden po druhém}
// skora gore hizi artiriyoruz // zvyšte rychlost podle skóre
if (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; zpoždění (5); }
}
Krok 4: KÓD BITMAPY
Kromě toho musíte pro tvary zahrnout bitmapovou grafiku. Musí to být soubor.c.
#include // include pro funkci progmem
const unsigned char arac PROGMEM = {// naše bitmapa tvaru
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusmanAraci PROGMEM = {// bitmapa nepřátelské lodi
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Krok 5: Děkujeme za zobrazení
Význam některých slov:
Oyun => Hra
Arac => Tvar
Dusman => Nepřítel
kontrol => kontrola
Konum, Yer => Poloha
Oyun Bitti => Konec hry
Skor => Skóre
Hiz => Rychlost
Doporučuje:
DIY PC volant a pedály z lepenky! (Zpětná vazba, pádla, zobrazení) pro závodní simulátory a hry: 9 kroků
DIY PC volant a pedály z lepenky! (Zpětná vazba, pádla, zobrazení) pro závodní simulátory a hry: Hej všichni! Během těchto nudných časů se všichni potulujeme a hledáme něco, co bychom mohli dělat. Závodní události v reálném životě byly zrušeny a byly nahrazeny simulátory. Rozhodl jsem se postavit levný simulátor, který funguje bezchybně, provi
ZÁVODNÍ KOLO PRO PC: 5 kroků
DIY RACING WHEEL FOR PC: Už jste někdy snili o návrhu vlastní fantastické herní konzole? Řešení pro vaše uhasení méně žízně spočívá zde. Zajímalo by mě, zda můžeme použít optickou myš jako konzolu řízení pro hry, které mají tuto funkci k dispozici. začal pracovat a
Google AIY VoiceHAT pro Raspberry Pi Kit (verze MagPi 57 verze 2017): 6 kroků (s obrázky)
Google AIY VoiceHAT pro Raspberry Pi Kit (verze MagPi 57 verze 2017): Tipy k sestavení hlasové sady MagPi nebyly v tutoriálech nalezeny
Rychlá reakční hra: Vzdálená verze: 5 kroků (s obrázky)
Rychlá reakční hra: Vzdálená verze: Ahoj. Toto je návod, jak vytvořit hru, která prověří jak váš reakční čas, tak i pocit vzdálenosti. Tento projekt je založen na starém projektu, do kterého jsem zapojil dva hráče, kteří soutěžili o to, kdo rychleji zareagoval kliknutím na tlačítko
Vesmírná bitevní loď Yamato 2199 s trinketovými mikrokontroléry: 8 kroků (s obrázky)
Vesmírná bitevní loď Yamato 2199 s mikroprocesory Trinket: Vzhledem k remaku animace a filmu Vesmírná bitevní loď Yamato navíc k atraktivnímu designu modelu Bandai. To mě zajímá postavit tento model vesmírné bitevní lodi znovu. Bandai nezmiňuje jeho měřítko, odhadem asi 1: 2500