Πίνακας περιεχομένων:

"Ninja Dollar" το παιχνίδι για το Arduino: 3 βήματα
"Ninja Dollar" το παιχνίδι για το Arduino: 3 βήματα

Βίντεο: "Ninja Dollar" το παιχνίδι για το Arduino: 3 βήματα

Βίντεο:
Βίντεο: 3 Disney Lightsabers VS a Neopixel 2024, Νοέμβριος
Anonim
Εικόνα
Εικόνα

Ένα άλλο βιντεοπαιχνίδι για το arduino.είναι ένα εξαιρετικό παιχνίδι είναι πιο προηγμένο από το τελευταίο που δημοσιεύω. Γιατί είναι πιο περίπλοκο από το άλλο; Είναι πιο περίπλοκο γιατί αυτό μπορεί να πηδήξει και να τραβήξει και να έχει ένα ηχητικό φως και μια νέα μέθοδο point cont.

Προμήθειες

  1. Arduino.
  2. Breadboard
  3. καλώδια βραχυκυκλωτήρων
  4. Κόκκινο LED
  5. 2 κουμπιά
  6. 2 αντιστάσεις 10k ohm
  7. 2 αντιστάσεις 220R.
  8. Σούπερ φωτεινό μπλε LED.
  9. πιεζόφωνος βομβητής
  10. Οθόνη LCD 16*2

Βήμα 1: Καλωδίωση όλων μαζί

Καλωδίωση όλων μαζί
Καλωδίωση όλων μαζί

Τώρα πρέπει να συνδέσετε τα πάντα

Βήμα 2: Πώς να παίξετε:

  1. Ενεργοποιήστε το arduino.
  2. Η οθόνη LCD πρέπει να εκτυπώνεται: "το παιχνίδι ξεκινάει" και αντίστροφη μέτρηση.
  3. Πατήστε ένα από τα κουμπιά για άλμα και άλλο για λήψη.
  4. κάθε μπλοκ που πηδάτε κερδίζετε έναν πόντο και κάθε * που πιάνετε σας δίνει 5 πόντους.
  5. Όταν έχετε 50 πόντους και πάνω κερδίζετε

Βήμα 3: Ο κώδικας

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

#περιλαμβάνω

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; ανυπόγραφο μακρύ πόντο = 0; // set buttonstates bool buttonState1 = 0; bool buttonState2 = 0; // τυχαίος αριθμός για τη θέση των εμποδίων int randomNums [6]; // τυχαίος αριθμός για αριθμό εμποδίων int randomNum = 0; // τυχαίος αριθμός για τη θέση των pts int randomNums1 [3]; // τυχαίος αριθμός για αριθμό pts int randomNum1 = 0; // χρόνος καθυστέρησης έναρξης, ο οποίος μειώνεται σταδιακά χωρίς υπογραφή int myDelay = 500; // έκανε αυτό το boolean για να ελέγξει αν πιέζεται το κουμπί2 γιατί αν πατηθεί μία φορά στο πρώτο για το βρόχο θέλω να μην γραφτούν εμπόδια μέχρι το τέλος του bool temp = 0; // αυτή η μεταβλητή αποθηκεύει τις θέσεις του πολεμιστή ενώ σουτάρει. μπορεί να υπάρχουν 16 θέσεις επειδή ο πολεμιστής έχει 16 θέσεις. int tempI [16]; // Χρησιμοποιώ αυτό το boolean για να ελέγξω αν το σημείο έχει πιάσει bool temp1 = 0?

// χρησιμοποιήστε αυτήν τη μεταβλητή για να αποθηκεύσετε τη θέση του σημείου που έχει πιάσει. πρέπει να είναι και πίνακας για να αποθηκεύσετε τη θέση όλων των σημείων σε μία επανάληψη του πρώτου βρόχου for. αν αποθηκεύσει μόνο μία θέση, τότε το "παλιό" σημείο θα επέστρεφε στη νέα επανάληψη

int tempI1 [3]; // χρησιμοποιήστε αυτήν τη μεταβλητή για να έχετε έναν αριθμό λήψεων του πολεμιστή, το οποίο είναι επίσης το μήκος ενός πίνακα tempI int button2IsPressed = 0; LiquidCrystal LCD (rs, en, d4, d5, d6, d7);

void setup () {

// ρυθμίστε τον αριθμό των στηλών και των σειρών LCD: lcd.begin (16, 2); // ορίστε τη λειτουργία κουμπιού pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (βομβητής, OUTPUT); lcd.setCursor (4, 0); lcd.print ("THE GAME"); lcd.setCursor (2, 1); lcd.print ("ΕΝΑΡΞΕΙ"); lcd.print ("5"); καθυστέρηση (1000)? lcd.setCursor (12, 1); lcd.print ("4"); καθυστέρηση (1000)? lcd.setCursor (12, 1); lcd.print ("3"); καθυστέρηση (1000)? lcd.setCursor (12, 1); lcd.print ("2"); καθυστέρηση (1000)? lcd.setCursor (12, 1); lcd.print ("1"); καθυστέρηση (1000)? lcd.clear ();

}

void loop () {

εδώ:

randomNum = τυχαίο (5);

για (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print ("ΝΙΚΗ"); τόνος (βομβητής, 262) καθυστέρηση (200)? τόνος (βομβητής, 330) καθυστέρηση (200)? τόνος (βομβητής, 392) καθυστέρηση (100)? τόνος (βομβητής, 330) καθυστέρηση (100)? τόνος (βομβητής, 392) καθυστέρηση (100)? τόνος (βομβητής, 523) καθυστέρηση (200)? noTone (βομβητής); καθυστέρηση (3000)? lcd.clear (); πήγα εδώ? } else lcd.setCursor (15, 0); lcd.print (pts); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // θέτοντας εμπόδια εάν ο πολεμιστής δεν πυροβόλησε ή πυροβόλησε αλλά επίσης πήδηξε αν (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print ("#"); }

}

}

// ρύθμιση πόντων

εάν (! temp1) {για (int j = 0; j

}

Συνιστάται: