Мазмұны:

Ғарыштық жарыс ойынының нұсқасы 2: 5 қадам
Ғарыштық жарыс ойынының нұсқасы 2: 5 қадам

Бейне: Ғарыштық жарыс ойынының нұсқасы 2: 5 қадам

Бейне: Ғарыштық жарыс ойынының нұсқасы 2: 5 қадам
Бейне: Кинода емес, өмірде де😂 2024, Қараша
Anonim
Image
Image

Барлығына сәлем. Бұл ойын нұсқасынан бұрын мен ойынның бірінші нұсқасын жарияладым. Бүгін мен сізге Space Race Game 2 нұсқасын көрсетемін. Қадамдарды қарастырайық …

1 -қадам: БӨЛІМДЕР

СХЕМА
СХЕМА

Міне, мен осы жобаны жасау үшін пайдаланған бөліктердің тізімі:

  • Arduino UNO
  • Джойстик модулі
  • Jumper Wires (еркектен еркекке және еркектен әйелге)
  • Нан тақтасы

2 -қадам: SCHEMA

VCC -> Arduino 5V

BL -> Arduino түйрегіші 3

GND -> Arduino GND

CLK (SCLK) -> Arduino пин 8

DIN (MOSI) -> Arduino PIN 9

DC -> Arduino штыры 10

CE немесе CS -> Arduino pin 12

RST (қалпына келтіру) -> Arduino түйрегіш 11

3 -қадам: КОД

КОД
КОД

Кодта код функцияларының түсіндірмелері бар. Сіз оны оңай түсінесіз. Егер сізде мәселе туындаса, маған хабарласа аласыз.

#қосу

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

логикалық бақылау = ақиқат;

логикалық dusmanoldu = ақиқат;

extern uint8_t SmallFont ; // қаріптерді сипаттаңыз

extern uint8_t MediumNumbers ; extern uint8_t arac ; // біздің пішінімізді сипаттаңыз extern uint8_t dusmanAraci ; // жаудың пішінін сипаттау const int xpin = A0; // джойстик x pin char pozisyon = 3; // орналасқан жерді сипаттаңыз, біздің пішіннің басталу орны 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // сипаттау dush1 x location int dusmankonum2; // сипаттама dush2 x location int dusmankonum3; // сипаттау dush3 x location int dusmankonum4; // сипаттау dush4 x location int dusmankonum5; // жауды сипаттау5 x location int dusmaninYdekonumu;

void oyunEkrani () {// ойын экранын орнатыңыз

lcd.clrScr (); lcd.drawRect (0, 0, 47, 47); // lcd.setFont (SmallFont) тіктөртбұрышын саламыз; // шрифтті орнату lcd.print («skor», 57, 1); // басып шығару бағасы lcd.print («hiz», 60, 24); // басып шығару жылдамдығы lcd.setFont (MediumNumbers); // қаріпті орнату lcd.printNumI (skor, 55, 8); // lcd.printNumI баллын алу (hiz, 63, 32); // lcd.update жылдамдығын алу (); }

void dusmanAracidurum (int yer, int asama) {// жаудың пішіндері үшін орындарды орнатыңыз

if (yer == 1) {lcd.drawBitmap (2, asama, dusmanAraci, 7, 7); lcd.update ();} // if location = 1, егер бұл жерді жау жауып тастаса, (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, асама, dusmanAraci, 7, 7); lcd.update ();}}

void oyunbitti () {// егер біз сәтсіздікке ұшырасақ, ойын аяқталады

while (1) {delay (100); // 1 милисекунд күтіңіз lcd.clrScr (); lcd.setFont (SmallFont); lcd.print («OYUN BITTI», ОРТА, 8); // lcd.print үстіндегі ойынды басып шығару («skorunuz =», 3, 30); // баллды басып шығарыңыз lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // соңғы баллды алу lcd.update (); }}

жарамсыз орнату () {

pinMode (BL, OUTPUT); // артқа қою шамы Шығу pinMode (xpin, INPUT); // x пинін lcd. InitLCD кірісі ретінде орнатыңыз (); // lcd.setContrast (55) lcd экранын бастаңыз; // контрасты орнатыңыз (0 -ден 127 -ге дейін) Serial.begin (9600); // сериялық хабарлауды бастау}

void loop () {

analogWrite (BL, 350); ойынEkrani ();

// джойистикалық жағдай… // джойстиктің орнын орнатыңыз …

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 және бақылау - бұл дұрыс pozisyon ++; // орынды ұлғайту, бұл пішінді оңға жылжытуды білдіреді kontrol = false; } else if (durumx> 300 && durumx <600) {kontrol = true; } // позиция жағдайы… // позиция күйі… if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // біздің кемені тартыңыз 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, көлік, 7, 7); lcd.update ();}

if (dusmanoldu) {// егер жаудың пішіні өлген болса, олардың өлгенін тексеріңіз

dusmankonum1 = позиция; // жаудың бірінші формасын сызыңыз dusmankonum2 = кездейсоқ (0, 6); // басқа жерге жау формасын салыңыз dusmankonum3 = кездейсоқ (0, 6); dusmankonum4 = кездейсоқ (0, 6); dusmankonum5 = кездейсоқ (0, 6); dusmaninYdekonumu = 0; // жауды жоғарыдан әкеледі dusmanoldu = жалған;} // жау қайта құрылады, сондықтан олар өлмейді

dusmanAracidurum (dusmankonum1, dusmaninYdekonumu); dusmaninYdekonumu ++; // жаудың бірінші пішінін сызыңыз және оны жоғарыдан төмен қарай алыңыз

dusmanAracidurum (dusmankonum2, dusmaninYdekonumu); dusmaninYdekonumu ++; // жаудың екінші пішінін сызыңыз және оны жоғарыдан төмен қарай алыңыз dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu); dusmaninYdekonumu ++; if (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) ||); // ойын аяқталды}

if (dusmaninYdekonumu> 42) {// егер біздің формамыз жаулардан қашып кетсе

dusmanoldu = ақиқат; // жау формаларын өлтіру skor ++; // ұпайларды бір -бірден жоғарылату}

// skora gore hizi artiriyoruz // ұпайға сәйкес жылдамдықты арттыру

егер (skor> = 0 && skor = 10 && skor = 20 && skor = 30 && skor = 40 && skor = 50) {hiz = 6; кешіктіру (5); }

}

4 -қадам: BITMAP -ті кодтау

Сонымен қатар, пішіндер үшін нүктелік кескін графигін қосу қажет. Бұл файл.c болуы керек.

#include // include функциясына арналған

const unsigned char arac PROGMEM = {// біздің пішіннің нүктелік картасы

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

const unsigned char dusmanAraci PROGMEM = {// жау кемелерінің нүктелік картасы

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

5 -қадам: Қарағаныңыз үшін рахмет

Кейбір сөздердің мағынасы:

Ойын => Ойын

Arac => Пішін

Дусман => Жау

kontrol => бақылау

Konum, Yer => Орналасқан жері

Ойын Бити => Ойын аяқталды

Skor => Ұпай

Hiz => Жылдамдық

Ұсынылған: