Taula de continguts:

"Ninja Dollar" el joc per Arduino: 3 passos
"Ninja Dollar" el joc per Arduino: 3 passos

Vídeo: "Ninja Dollar" el joc per Arduino: 3 passos

Vídeo:
Vídeo: doubling the drop every time the PC survives #shorts 2024, Desembre
Anonim
Imatge
Imatge

Un altre videojoc per a arduino.it és un joc fantàstic que està més avançat que l’anterior que publico. Per què és més complex que altres? És més complex perquè pot saltar i disparar i tenir una llum sonora i un nou mètode de punts.

Subministraments

  1. Arduino.
  2. Taula de pa
  3. cables de pont
  4. LED vermell
  5. 2 polsadors
  6. 2 resistències de 10k ohm
  7. 2 resistències 220R.
  8. LED blau súper brillant.
  9. timbre piezoelèctric
  10. Pantalla LCD de 16 * 2

Pas 1: connectar-ho tot junt

Cablejant-ho tot junt
Cablejant-ho tot junt

Ara cal connectar-ho tot

Pas 2: Com es juga:

  1. Enceneu l’arduino.
  2. La pantalla LCD hauria d'imprimir: "el joc comença en" i un compte enrere.
  3. Premeu un dels botons per saltar i l'altre per disparar.
  4. cada bloc que salteu guanyava un punt i cada * que agafeu us dóna 5 punts.
  5. Quan tens 50 punts o més guanyaves

Pas 3: el codi

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

#incloure

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

const int buttonPin1 = 1; const int buttonPin2 = 6; const int buzzer = 7; pts llargs sense signar = 0; // set buttonstates bool buttonState1 = 0; bool buttonState2 = 0; // número aleatori per a la posició dels obstacles int randomNums [6]; // número aleatori per al nombre d'obstacles int randomNum = 0; // número aleatori per a la posició de punts en randomNums1 [3]; // nombre aleatori per al nombre de punts int randomNum1 = 0; // temps de retard d'inici, que disminueix gradualment sense signar int myDelay = 500; // he fet aquest booleà per comprovar si es prem el botó 2 perquè si es prem un cop al primer bucle per a vull que no s'escrivin obstacles fins al final del mateix bool temp = 0; // aquesta variable emmagatzema les posicions del guerrer mentre dispara. hi pot haver 16 posicions perquè el guerrer té 16 posicions. int tempI [16]; // faig servir aquest booleà per comprovar si el punt està atrapat bool temp1 = 0;

// utilitzeu aquesta variable per emmagatzemar la posició del punt capturat. ha de ser i array per emmagatzemar la posició de tots els punts en una iteració del primer bucle for. si només emmagatzemés una posició, el punt "vell" tornaria a la nova iteració

int tempI1 [3]; // utilitzeu aquesta variable per tenir una sèrie de trets del guerrer, que també és la longitud d'un botó tempI int array2IsPressed = 0; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

configuració nul·la () {

// configureu el nombre de columnes i files de la pantalla LCD: lcd.begin (16, 2); // estableix el mode pin buttonMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buzzer, OUTPUT); lcd.setCursor (4, 0); lcd.print ("EL JOC"); lcd.setCursor (2, 1); lcd.print ("INICIA"); lcd.print ("5"); retard (1000); lcd.setCursor (12, 1); lcd.print ("4"); retard (1000); lcd.setCursor (12, 1); lcd.print ("3"); retard (1000); lcd.setCursor (12, 1); lcd.print ("2"); retard (1000); lcd.setCursor (12, 1); lcd.print ("1"); retard (1000); lcd.clear ();

}

bucle buit () {

aquí:

randomNum = random (5);

per a (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print ("VICTORYRIA"); to (timbre, 262); retard (200); to (timbre, 330); retard (200); to (brunzidor, 392); retard (100); to (timbre, 330); retard (100); to (brunzidor, 392); retard (100); to (timbre, 523); retard (200); noTone (timbre); retard (3000); lcd.clear (); anar aquí; } else lcd.setCursor (15, 0); lcd.print (pts); buttonState1 = digitalRead (buttonPin1); buttonState2 = DigitalRead (buttonPin2); // posar obstacles si el guerrer no va disparar o va disparar, però també va saltar si (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// configuració de pts

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

}

Recomanat: