Kosmosevõistlusmängu versioon 2: 5 sammu
Kosmosevõistlusmängu versioon 2: 5 sammu
Anonim
Image
Image

Hei kõik. Enne selle mängu versiooni avaldasin mängu esimese versiooni. Täna näitan teile Space Race Game versiooni 2. Vaatame samme …

1. samm: OSAD

Skeem
Skeem

Siin on nimekiri osadest, mida ma selle projekti tegemisel kasutasin:

  • Arduino UNO
  • Joystick moodul
  • Jumper juhtmed (meestele ja isastele naistele)
  • Leivalaud

2. samm: Skeem

VCC -> Arduino 5V

BL -> Arduino tihvt 3

GND -> Arduino GND

CLK (SCLK) -> Arduino tihvt 8

DIN (MOSI) -> Arduino tihvt 9

DC -> Arduino tihvt 10

CE või CS -> Arduino tihvt 12

RST (RESET) -> Arduino pin 11

3. samm: KOODI

KOOD
KOOD

Koodil on koodifunktsioonide selgitused. Saate sellest hõlpsalt aru. Kui teil on probleeme, võite minuga ühendust võtta.

#kaasake

LCD5110 LCD (8, 9, 10, 11, 12); // (clk, cin, dc,, rst, ce)

boolean kontrol = tõene;

boolean dusmanoldu = tõene;

extern uint8_t SmallFont ; // kirjeldada fonte

extern uint8_t Keskmised numbrid ; väline uint8_t arac ; // kirjelda meie kuju extern uint8_t dusmanAraci ; // desribe vaenlase kuju const int xpin = A0; // juhtkang x tihvt char pozisyon = 3; // kirjeldada asukohta, meie kuju alguskoht 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // vaenlase kirjeldamine1 x asukoht int dusmankonum2; // vaenlase kirjeldamine2 x asukoht int dusmankonum3; // vaenlase kirjeldamine3 x asukoht int dusmankonum4; // vaenlase kirjeldamine4 x asukoht int dusmankonum5; // kirjeldage vaenlast5 x asukoht int dusmaninYdekonumu;

void oyunEkrani () {// määrake mänguekraan

lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // joonistame ristküliku lcd.setFont (SmallFont); // määrake font lcd.print ("skor", 57, 1); // print skoor lcd.print ("hiz", 60, 24); // printimiskiirus lcd.setFont (MediumNumbers); // määrake font lcd.printNumI (skor, 55, 8); // saada skoor lcd.printNumI (hiz, 63, 32); // hangi kiirus lcd.update (); }

void dusmanAracidurum (int yer, int asama) {// määrake vaenlase kuju asukohad

if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // kui asukoht = 1 joonistab vaenlase selle asukoha, kui (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 () {// kui ebaõnnestume, on mäng läbi

samas (1) {viivitus (100); // oota 1 millisekund lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTER, 8); // prindi mäng üle lcd.print ("skorunuz =", 3, 30); // prindi oma skoor lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // saada viimane skoor lcd.update (); }}

tühine seadistus () {

pinMode (BL, VÄLJUND); // tagantvalgustus Väljund pinMode (xpin, INPUT); // määrake x pin sisendiks lcd. InitLCD (); // initsialiseeri LCD -ekraan lcd.setContrast (55); // määrake kontrastsus (palju 0 kuni 127) Serial.begin (9600); // seeriaühenduse alustamine}

void loop () {

analogWrite (BL, 350); oyunEkrani ();

// joyistic durumu … // määrake joyisticki asukoht …

int durumx = analogRead (xpin); if (durumx <300 && pozisyon! = 1 && kontrol == true) {// kui asukoht! = 1, x olek600 && pozisyon! = 6 && kontrol == tõene) {// kui asukoht! = 3, x olek> 600 ja juhtimine on tõsi pozisyon ++; // asukoha suurendamine tähendab kuju teisaldamist paremale kontrol = false; } else if (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // positsiooni olek… if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // joonistage meie laev, kui (pozisyon == 2) {lcd.drawBitmap (10, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();}} kui (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) {// kui vaenlase kuju on surnud, kontrollige, kas nad on surnud

dusmankonum1 = pozisyon; // esimese vaenlase kuju joonistamine dusmankonum2 = juhuslik (0, 6); // teise vaenlase kuju joonistamine kuskile dusmankonum3 = juhuslik (0, 6); dusmankonum4 = juhuslik (0, 6); dusmankonum5 = juhuslik (0, 6); dusmaninYdekonumu = 0; // tuua vaenlane ülevalt dusmanoldu = false;} // vaenlane luuakse uuesti, et nad poleks surnud

dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // joonista esimene vaenlase kuju ja saada see ülevalt alla

dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // joonista teine vaenlase kuju ja saada see ülalt alla dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon)))) {// kui meie kuju puudutab vaenlase kuju oyunbitti (); //mäng on läbi }

if (dusmaninYdekonumu> 42) {// kui meie kuju pääseb vaenlaste eest

dusmanoldu = tõsi; // tappa vaenlase kujundeid skor ++; // suurendage skoori ükshaaval}

// skora gore hizi artiriyoruz // suurendage kiirust vastavalt skoorile

kui (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; viivitus (5); }

}

4. samm: KOODI BITMAP

Lisaks peate vormide jaoks lisama bitikaardi graafika. See peab olema.c -fail.

#include // include programmi funktsiooni jaoks

const unsigned char arac PROGMEM = {// meie kuju bitikaart

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

const unsigned char dusmanAraci PROGMEM = {// vaenlase laeva bitikaart

0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};

Samm: täname vaatamise eest

Mõne sõna tähendus:

Oyun => Mäng

Arac => kuju

Dusman => Vaenlane

kontroll => kontroll

Konum, Yer => Asukoht

Oyun Bitti => Mäng läbi

Skor => Skoor

Hiz => kiirus