Vesmírná závodní hra Verze 2: 5 kroků
Vesmírná závodní hra Verze 2: 5 kroků
Anonim
Image
Image

Č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

SCHÉMA
SCHÉMA

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
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