Tartalomjegyzék:

Űrverseny játék 2. verzió: 5 lépés
Űrverseny játék 2. verzió: 5 lépés

Videó: Űrverseny játék 2. verzió: 5 lépés

Videó: Űrverseny játék 2. verzió: 5 lépés
Videó: HIHETETLEN KAPCSOLATOK (A paranormális és UFO-k) – Race Hobbs 2024, November
Anonim
Image
Image

Hello mindenki. A játék verziója előtt közzétettem a játék első verzióját. Ma megmutatom a Space Race Game 2. verzióját. Nézzük a lépéseket…

1. lépés: RÉSZEK

SÉMA
SÉMA

Itt van egy lista a részekről, amelyeket a projekt elkészítéséhez használtam:

  • Arduino UNO
  • Joystick modul
  • Jumper vezetékek (férfi -férfi és férfi -nő)
  • Kenyeretábla

2. lépés: Séma

VCC -> Arduino 5V

BL -> Arduino csap 3

GND -> Arduino GND

CLK (SCLK) -> Arduino pin 8

DIN (MOSI) -> Arduino csap 9

DC -> Arduino pin 10

CE vagy CS -> Arduino csap 12

RST (RESET) -> Arduino pin 11

3. lépés: KÓDOLÁS

KÓD
KÓD

A kód magyarázatot ad a kódfunkciókra. Könnyen megérti. Ha problémája van, vegye fel velem a kapcsolatot.

#befoglalni

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

boolean kontrol = igaz;

boolean dusmanoldu = igaz;

extern uint8_t SmallFont ; // leírja a betűtípusokat

extern uint8_t Közepes számok ; extern uint8_t arac ; // alakunk leírása extern uint8_t dusmanAraci ; // ellenséges alak leírása const int xpin = A0; // joystick x pin char pozisyon = 3; // a hely leírása, alakunk kiindulási helye 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // az ellenség leírása1 x hely int dusmankonum2; // az ellenség leírása2 x hely int dusmankonum3; // az ellenség leírása3 x hely int dusmankonum4; // az ellenség leírása4 x hely int dusmankonum5; // az ellenség leírása5 x hely int dusmaninYdekonumu;

void oyunEkrani () {// játék képernyő beállítása

lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // téglalapot rajzolunk lcd.setFont (SmallFont); // set font lcd.print ("skor", 57, 1); // print score lcd.print ("hiz", 60, 24); // nyomtatási sebesség lcd.setFont (MediumNumbers); // set font lcd.printNumI (skor, 55, 8); // get score lcd.printNumI (hiz, 63, 32); // get speed lcd.update (); }

void dusmanAracidurum (int yer, int asama) {// helyszínek beállítása az ellenséges alakzatokhoz

if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // ha location = 1 rajzoljon ellenséget, alakítsa ezt a helyet, ha (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 () {// ha kudarcot vallunk, a játéknak vége

míg (1) {késleltetés (100); // várj 1 ezredmásodperc lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTER, 8); // játék nyomtatása lcd.print felett ("skorunuz =", 3, 30); // a pontszám kinyomtatása lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // utolsó pontszám megszerzése lcd.update (); }}

void setup () {

pinMode (BL, OUTPUT); // háttérvilágítás kikapcsolása Kimeneti pinMode (xpin, INPUT); // állítsa be az x tűt bemenetként lcd. InitLCD (); // az LCD képernyő inicializálása lcd.setContrast (55); // kontraszt beállítása (0 és 127 között) Serial.begin (9600); // soros kommunikáció indítása}

void loop () {

analogWrite (BL, 350); oyunEkrani ();

// joyistic durumu … // állítsa be a joyistick helyét …

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 és a vezérlés igaz pozisyon ++; // a hely növelése azt jelenti, hogy az alakzatot jobbra kell mozgatni. } else if (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // pozícióállapot… if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // rajzold meg hajónkat, ha (pozisyon == 2) {lcd.drawBitmap (10, 41, arac, 7, 7); lcd.update ();} if (pozisyon == 3) {lcd.drawBitmap (18, 41, arac, 7, 7); lcd.update ();}} ha (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) {// ha az ellenség alakja halott, ellenőrizze, hogy halottak -e

dusmankonum1 = pozisyon; // az első ellenséges alak rajzolása dusmankonum2 = véletlenszerű (0, 6); // valahol egy másik ellenséges alak rajzolása dusmankonum3 = véletlenszerű (0, 6); dusmankonum4 = véletlenszerű (0, 6); dusmankonum5 = véletlenszerű (0, 6); dusmaninYdekonumu = 0; // hozzon ellenséget a tetejéről dusmanoldu = false;} // az ellenséget újraalkotják, így nem haltak meg

dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // rajzolja meg az első ellenséges alakot, és tegye felülről lefelé

dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // rajzolja meg a második ellenséges alakot, és tegye felülről lefelé dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon)))) {// ha alakunk megérinti az ellenséges formákat oyunbitti ((); //a játéknak vége }

if (dusmaninYdekonumu> 42) {// ha alakunk elmenekül az ellenségek elől

dusmanoldu = igaz; // megölni az ellenséges formákat skor ++; // egyenként növeli a pontszámot}

// skora gore hizi artiriyoruz // növelje a sebességet pontszám szerint

ha (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; késleltetés (5); }

}

4. lépés: BITMAP KÓDOLÁSA

Ezenkívül bitképes grafikát kell tartalmaznia az alakzatokhoz. Egy.c fájlnak kell lennie.

#include // include a progmem függvényhez

const unsigned char arac PROGMEM = {// alakunk bitképe

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

const unsigned char dusmanAraci PROGMEM = {// ellenséges hajó bitképe

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

5. lépés: Köszönjük, hogy megtekintette

Néhány szó jelentése:

Oyun => Játék

Arac => Alak

Dusman => Ellenség

kontrol => ellenőrzés

Konum, Yer => Hely

Oyun Bitti => Game Over

Skor => Pontszám

Hiz => Sebesség

Ajánlott: