Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Γεια σε όλους. Πριν από αυτήν την έκδοση παιχνιδιού, η ı δημοσίευσε την πρώτη έκδοση του παιχνιδιού. Σήμερα, το ı θα σας δείξει Space Race Game έκδοση 2. Ας δούμε βήματα…
Βήμα 1: ΜΕΡΗ
Ακολουθεί μια λίστα με τα μέρη που χρησιμοποίησα για να φτιάξω αυτό το έργο:
- Arduino UNO
- Ενότητα Joystick
- Jumper Wires (αρσενικό σε αρσενικό και αρσενικό σε θηλυκό)
- Breadboard
Βήμα 2: SCHEMA
VCC -> Arduino 5V
BL -> καρφίτσα Arduino 3
GND -> Arduino GND
CLK (SCLK) -> Καρφίτσα Arduino 8
DIN (MOSI) -> Καρφίτσα Arduino 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)
boolean kontrol = true?
boolean dusmanoldu = αλήθεια?
extern uint8_t SmallFont ; // περιγράψτε τις γραμματοσειρές
extern uint8_t MediumNumbers ; extern uint8_t arac ; // περιγράψτε το σχήμα μας εξωτερικά uint8_t dusmanAraci ; // περιγραφή σχήματος εχθρού const int xpin = A0; // joystick x pin char pozisyon = 3; // περιγράψτε την τοποθεσία, τη θέση έναρξης του σχήματός μας 3 int BL = 3; int skor = 0; int hiz = 0; int dusmankonum1; // περιγράψτε τον εχθρό1 x θέση int dusmankonum2; // περιγράψτε τον εχθρό2x θέση int dusmankonum3; // περιγράψτε τον εχθρό3 x θέση int dusmankonum4; // περιγράψτε τον εχθρό4 x θέση int dusmankonum5; // περιγράψτε τον εχθρό5 x τοποθεσία 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 draw εχθρός διαμορφώνει αυτήν την τοποθεσία εάν (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 () {// αν αποτύχουμε, το παιχνίδι τελείωσε
ενώ (1) {καθυστέρηση (100)? // περιμένετε 1 χιλιοστό δευτερολέπτου lcd.clrScr (); lcd.setFont (SmallFont); lcd.print ("OYUN BITTI", CENTER, 8); // εκτύπωση παιχνιδιού μέσω lcd.print ("skorunuz =", 3, 30); // εκτυπώστε τη βαθμολογία σας lcd.setFont (MediumNumbers); lcd.printNumI (skor, 60, 25); // λάβετε την τελευταία βαθμολογία lcd.update (); }}
void setup () {
pinMode (BL, OUTPUT); // ρύθμιση πίσω φωτός Έξοδος pinMode (xpin, INPUT); // ορίστε το x pin ως είσοδο lcd. InitLCD (); // προετοιμάστε την οθόνη LCD lcd.setContrast (55); // ρύθμιση αντίθεσης (από 0 έως 127) Serial.begin (9600); // έναρξη σειριακής επικοινωνίας}
void loop () {
analogWrite (BL, 350); oyunEkrani ();
// joyistic durumu… // ορίστε τη θέση του joyistick…
int durumx = analogRead (xpin); if (durumx <300 && pozisyon! = 1 && kontrol == true) {// if location! = 1, x state600 && pozisyon! = 6 && kontrol == true) {// if location! = 3, x κατάσταση> 600 και ο έλεγχος είναι αληθινός pozisyon ++? // αύξηση της τοποθεσίας σημαίνει μετακίνηση σχήματος προς τα δεξιά kontrol = false; } else if (durumx> 300 && durumx <600) {kontrol = true; } // pozisyon durumu… // κατάσταση θέσης… if (pozisyon == 1) {// if location = 1; lcd.drawBitmap (2, 41, arac, 7, 7); lcd.update ();} // σχεδιάστε το πλοίο μας εάν (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, arac, 7, 7); lcd.update ();}
εάν (dusmanoldu) {// εάν το σχήμα του εχθρού είναι νεκρό, ελέγξτε αν είναι νεκρά
dusmankonum1 = pozisyon; // σχεδιάστε το πρώτο σχήμα του εχθρού dusmankonum2 = τυχαίο (0, 6); // σχεδιάστε ένα άλλο σχήμα εχθρού κάπου dusmankonum3 = τυχαίο (0, 6); dusmankonum4 = τυχαίο (0, 6); dusmankonum5 = τυχαίο (0, 6); dusmaninYdekonumu = 0; // φέρτε τον εχθρό από την κορυφή dusmanoldu = false;} // ο εχθρός αναδημιουργείται έτσι ώστε να μην είναι νεκροί
dusmanAracidurum (dusmankonum1, dusmaninYdekonumu) · dusmaninYdekonumu ++; // σχεδιάστε το πρώτο σχήμα του εχθρού και πάρτε το από πάνω προς τα κάτω
dusmanAracidurum (dusmankonum2, dusmaninYdekonumu) · dusmaninYdekonumu ++; // σχεδιάστε το δεύτερο σχήμα του εχθρού και πάρτε το από πάνω προς τα κάτω dusmanAracidurum (dusmankonum3, dusmaninYdekonumu); dusmaninYdekonumu ++; dusmanAracidurum (dusmankonum4, dusmaninYdekonumu) · dusmaninYdekonumu ++; αν (dusmaninYdekonumu> 35 && ((dusmankonum1 == pozisyon) || (dusmankonum2 == pozisyon) || (dusmankonum3 == pozisyon) || (dusmankonum4 == pozisyon)))) {// αν το σχήμα μας αγγίζει τον εχθρό σχηματίζει oyunbitti (); //το παιχνίδι τελείωσε }
εάν (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
Επιπλέον, πρέπει να συμπεριλάβετε γραφικά bitmap για σχήματα. Πρέπει να είναι αρχείο.c.
#include // include για λειτουργία progmem
const unsigned char arac PROGMEM = {// το bitmap του σχήματός μας
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
const unsigned char dusmanAraci PROGMEM = {// bitmap του εχθρικού πλοίου
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,};
Βήμα 5: Ευχαριστούμε για την προβολή
Σημασία μερικών λέξεων:
Oyun => Παιχνίδι
Arac => Σχήμα
Dusman => Εχθρός
έλεγχος => έλεγχος
Konum, Yer => Τοποθεσία
Oyun Bitti => Το παιχνίδι τελείωσε
Σκορ => Βαθμολογία
Hiz => Ταχύτητα