Tartalomjegyzék:

"Ninja Dollar" Arduino játék: 3 lépés
"Ninja Dollar" Arduino játék: 3 lépés

Videó: "Ninja Dollar" Arduino játék: 3 lépés

Videó:
Videó: 3 Disney Lightsabers VS a Neopixel 2024, Július
Anonim
Kép
Kép

Egy másik videojáték az arduino számára. Ez egy nagyszerű játék, fejlettebb, mint az utolsó, amit közzétettem. Miért bonyolultabb, mint a többi? Bonyolultabb, mert ugrálhat és lőhet, és hangos fényt és új pont -módszert kaphat.

Kellékek

  1. Arduino.
  2. Kenyeretábla
  3. jumper vezetékek
  4. Piros LED
  5. 2 nyomógomb
  6. 2 db 10k ohmos ellenállás
  7. 2 220R ellenállás.
  8. Szuper fényes kék LED.
  9. piezo hangjelző
  10. 16*2 LCD kijelző

Lépés: Mindent össze kell kötni

Összehuzalozás
Összehuzalozás

Most mindent be kell kötni

2. lépés: Hogyan kell játszani:

  1. Kapcsolja be az arduino -t.
  2. Az LCD -nek ki kell nyomtatnia: "a játék kezdődik" és egy visszaszámlálás.
  3. Nyomja meg az egyik gombot az ugráshoz, a másikat a lövéshez.
  4. minden blokk, amit ugrik, egy pontot nyert, és minden *, amit elkap, 5 pontot ad.
  5. Ha legalább 50 pontod van, akkor nyertél

3. lépés: A kód

// este jogo e muito interessante e ao mesmo tempo irritante e frustante mas muito divertido.

#befoglalni

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

const int gombPin1 = 1; const int gombPin2 = 6; const int zümmögő = 7; előjel nélküli hosszú pts = 0; // set buttonstates bool buttonState1 = 0; bool buttonState2 = 0; // véletlen szám az akadályok helyzetéhez int randomNums [6]; // véletlen szám az akadályok számára int randomNum = 0; // véletlen szám a pts helyzetéhez int randomNums1 [3]; // véletlen szám a pontok számához int randomNum1 = 0; // indítási késleltetési idő, amely fokozatosan csökken előjel nélkül int myDelay = 500; // ezt a logikai értéket arra késztette, hogy ellenőrizze, hogy megnyomták -e a 2 gombot, mert ha az első alkalommal egyszer megnyomják a ciklushoz, azt akarom, hogy az akadályok ne íródjanak a végéig bool temp = 0; // ez a változó tárolja a harcos pozícióit, amíg lő. 16 pozíció lehet, mert a harcosnak 16 pozíciója van. int tempI [16]; // ezt a logikai értéket használom annak ellenőrzésére, hogy elkapta -e a pontot bool temp1 = 0;

// ezzel a változóval tárolja a fogott pont helyzetét. és tömbnek kell lennie, hogy tárolja az összes pont helyzetét a ciklus első iterációjában. ha csak egy pozíciót tárolna, akkor a "régi" pont visszatérne az új iterációban

int tempI1 [3]; // ezzel a változóval számos felvételt készíthet a harcosról, ami egy tömb hossza is tempI int button2IsPressed = 0; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

void setup () {

// az LCD oszlopok és sorok számának beállítása: lcd.begin (16, 2); // gomb gomb mód beállítása pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (hangjelző, OUTPUT); lcd.setCursor (4, 0); lcd.print ("A JÁTÉK"); lcd.setCursor (2, 1); lcd.print ("INDUL"); lcd.print ("5"); késleltetés (1000); lcd.setCursor (12, 1); lcd.print ("4"); késleltetés (1000); lcd.setCursor (12, 1); lcd.print ("3"); késleltetés (1000); lcd.setCursor (12, 1); lcd.print ("2"); késleltetés (1000); lcd.setCursor (12, 1); lcd.print ("1"); késleltetés (1000); lcd.clear ();

}

void loop () {

itt:

randomNum = random (5);

for (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print ("VICTORY"); hang (zümmögő, 262); késleltetés (200); hang (zümmögő, 330); késleltetés (200); hang (zümmögő, 392); késleltetés (100); hang (zümmögő, 330); késleltetés (100); hang (zümmögő, 392); késleltetés (100); hang (zümmögő, 523); késleltetés (200); noTone (zümmögő); késleltetés (3000); lcd.clear (); menj ide; } else lcd.setCursor (15, 0); lcd.print (pont); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // akadályok felállítása, ha a harcos nem lőtt vagy lőtt, de ugrott is, ha (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// pts beállítása

ha (! temp1) {for (int j = 0; j

}

Ajánlott: