Vesmírna závodná hra Verzia 2: 5 krokov
Vesmírna závodná hra Verzia 2: 5 krokov
Anonim
Image
Image

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

SCHÉMA
SCHÉMA

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