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

Floppy Bird: 3 Βήματα
Floppy Bird: 3 Βήματα

Βίντεο: Floppy Bird: 3 Βήματα

Βίντεο: Floppy Bird: 3 Βήματα
Βίντεο: How to make a Paper Fortune Teller 2024, Νοέμβριος
Anonim
Floppy Bird
Floppy Bird
Floppy Bird
Floppy Bird

Σήμερα θα κάνουμε ένα παιχνίδι χρησιμοποιώντας μια TFT LCD. Αυτό θα μοιάζει με ένα παιχνίδι που είναι πολύ δημοφιλές και πολλοί άνθρωποι εξακολουθούν να παίζουν αυτό το παιχνίδι. Το παιχνίδι ονομάζεται Flappy Bird αλλά αυτό το παιχνίδι είναι λίγο διαφορετικό γιατί το UI είναι διαφορετικό καθώς και ο τρόπος λειτουργίας του παιχνιδιού. Κάλεσα αυτό το παιχνίδι Floppy Bird καθώς αυτό θα μπορούσε να οδηγήσει σε προβλήματα πνευματικών δικαιωμάτων. Παρ 'όλα αυτά είναι ένα πραγματικά διασκεδαστικό παιχνίδι και είναι εύκολο να το φτιάξετε. Έκανα αυτό το διδακτικό που θα σας επιτρέψει να κάνετε το παιχνίδι εντελώς και να το κάνετε να λειτουργήσει όπως έκανα. Εάν έχετε οποιεσδήποτε ερωτήσεις, παρακαλώ σχολιάστε παρακάτω και θα προσπαθήσω να απαντήσω σε αυτές τις ερωτήσεις το συντομότερο δυνατό.

Προμήθειες

- Arduino Mega 2560 και καλώδιο

- Arduino Mega Shield

- Arduino TFT LCD Συμβατό με το Arduino Mega 2560

- Κάρτα SD

Βήμα 1: Συναρμολόγηση της οθόνης TFT LCD

Συναρμολόγηση της οθόνης LCD TFT
Συναρμολόγηση της οθόνης LCD TFT

Τώρα, μπορούμε να ξεκινήσουμε τη συναρμολόγηση της TFT LCD. Θα συνδέσουμε το TFT LCD στην ασπίδα, οπότε πρώτα πάρτε το TFT LCD και βασικά ευθυγραμμίστε το με τις ακίδες της ασπίδας. Αφού ευθυγραμμίσετε τις καρφίτσες, σπρώξτε την οθόνη TFT LCD προς τα κάτω ώστε να ταιριάζει στη θέση της. Όταν όλες οι κεφαλές καρφιτσών βρίσκονται στην ασπίδα και δεν μπορείτε να δείτε τις κεφαλές καρφιτσών, τότε γνωρίζετε ότι η οθόνη TFT LCD είναι σωστά συνδεδεμένη. Στη συνέχεια, μπορούμε να συνδέσουμε την ασπίδα στο Arduino Mega 2560. Ευθυγραμμίστε τις ακίδες της ασπίδας στο Arduino Mega και συνδέστε το. Όταν όλες οι κεφαλές καρφιτσών βρίσκονται στο Arduino Mega και δεν μπορείτε να δείτε τις κεφαλές των καρφιτσών, αυτό είναι όταν γνωρίζετε ότι η οθόνη LCD TFT είναι σωστά συνδεδεμένη και είναι έτοιμη για ενεργοποίηση. Συνδέστε το Arduino για να δείτε αν έχετε συνδέσει σωστά την οθόνη LCD, εάν η οθόνη LCD ανάβει και η οθόνη είναι λευκή τότε συγχαρητήρια, έχετε συνδέσει με επιτυχία την οθόνη TFT LCD και τώρα είναι έτοιμο για προγραμματισμό. Τέλος, έχουμε ένα πράγμα να κάνουμε, δηλαδή να συνδέσουμε την κάρτα SD στην οθόνη LCD. Στο πίσω μέρος της οθόνης TFT LCD υπάρχει υποδοχή κάρτας SD όπου μπορείτε απλά να συνδέσετε την κάρτα SD. Επομένως, απλώς συνδέστε το και τελείωσε.

Βήμα 2: Προγραμματισμός της οθόνης TFT LCD

Προγραμματισμός της TFT LCD
Προγραμματισμός της TFT LCD

Τώρα, θα προγραμματίσουμε την οθόνη LCD έτσι ώστε να τρέχει το παιχνίδι και να μπορούμε να το παίξουμε. Παρακάτω είναι ο κώδικας που πρέπει να μεταγλωττίσετε και να ανεβάσετε χρησιμοποιώντας το Arduino IDE.

Προβλήματα που μπορεί να έχετε:

Αλλάξτε τις παραμέτρους της TFT LCD ανάλογα με το μοντέλο που έχετε.

ΠΛΗΡΗΣ ΚΩΔΙΚΟΣ:

#συμπεριλάβω #συμπεριλάβω #συμπεριλάβω

// ==== Δημιουργία αντικειμένων

UTFT myGLCD (ILI9341_16, 38, 39, 40, 41); // Οι παράμετροι πρέπει να προσαρμοστούν στο μοντέλο οθόνης/ασπίδας URTouch myTouch (6, 5, 4, 3, 2).

// ==== Καθορισμός γραμματοσειρών

extern uint8_t SmallFont ; extern uint8_t BigFont ; extern uint8_t SevenSegNumFont ;

εξωτερικό ανυπόγραφο int bird01 [0x41A]; // Birdmap

int x, y; // Μεταβλητές για τις συντεταγμένες όπου έχει πατηθεί η οθόνη

// Floppy Bird

int xP = 319; int yP = 100; int yB = 50; int moveRate = 3; int fallRateInt = 0; float fallRate = 0; βαθμολογία int = 0; int lastSpeedUpScore = 0; int υψηλότερη βαθμολογία; boolean screenPressed = false; boolean gameStarted = false;

void setup () {

// Έναρξη εμφάνισης myGLCD. InitLCD (); myGLCD.clrScr (); myTouch. InitTouch (); myTouch.setPrecision (PREC_MEDIUM); υψηλότερη βαθμολογία = EEPROM.read (0); // Διαβάστε την υψηλότερη βαθμολογία από το EEPROM initateGame (); // Ξεκινήστε το παιχνίδι}

void loop () {

xP = xP-moveRate; // xP - x συντεταγμένη των πυλώνων. εύρος: 319 - (-51) drawPilars (xP, yP); // Σχεδιάζει τους πυλώνες // yB - y συντεταγμένη του πουλιού που εξαρτάται από την τιμή της μεταβλητής πτώσηςRate yB+= fallRateInt; fallRate = fallRate+0,4; // Κάθε εισροή ο ρυθμός πτώσης αυξάνεται έτσι ώστε να μπορούμε να επιδράσουμε στην επιτάχυνση/ βαρύτητα fallRateInt = int (fallRate). // Ελέγχει για σύγκρουση εάν (yB> = 180 || yB <= 0) {// πάνω και κάτω gameOver (); } if ((xP = 5) && (yB <= yP-2)) {// παιχνίδι άνω πυλώναOver (); } if ((xP = 5) && (yB> = yP+60)) {// χαμηλότερη κολόνα gameOver (); } // Σχεδιάζει το πουλί drawBird (yB);

// Αφού περάσει ο στύλος από την οθόνη

εάν (xPRESET = 250) && (x = 0) && (y = 0) && (x = 30) && (y = 270) {myGLCD.setColor (0, 200, 20); myGLCD.fillRect (318, 0, x, y-1); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, 0, x-1, y);

myGLCD.setColor (0, 200, 20);

myGLCD.fillRect (318, y+81, x, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (319, y+80, x-1, 204); } else if (x <= 268) {// Σχεδιάζει μπλε ορθογώνιο δεξιά στον πυλώνα myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, 0, x+60, y); // Σχεδιάζει τον πυλώνα myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, 1, x+1, y-1); // Σχεδιάζει το μαύρο πλαίσιο του στύλου myGLCD.setColor (0, 0, 0). myGLCD.drawRect (x+50, 0, x, y); // Σχεδιάζει το μπλε ορθογώνιο αριστερά του πυλώνα myGLCD.setColor (114, 198, 206). myGLCD.fillRect (x-1, 0, x-3, y);

// Ο κάτω πυλώνας

myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x+51, y+80, x+60, 204); myGLCD.setColor (0, 200, 20); myGLCD.fillRect (x+49, y+81, x+1, 203); myGLCD.setColor (0, 0, 0); myGLCD.drawRect (x+50, y+80, x, 204); myGLCD.setColor (114, 198, 206); myGLCD.fillRect (x-1, y+80, x-3, 204); } // Σχεδιάζει τη βαθμολογία myGLCD.setColor (0, 0, 0); myGLCD.setBackColor (221, 216, 148); myGLCD.setFont (BigFont); myGLCD.printNumI (βαθμολογία, 100, 220); }

// ====== drawBird () - Προσαρμοσμένη λειτουργία

void drawBird (int y) {// Draws the bird - bitmap myGLCD.drawBitmap (50, y, 35, 30, bird01); // Σχεδιάζει μπλε ορθογώνια πάνω και κάτω από το πουλί προκειμένου να καθαρίσει την κατάσταση του προγενέστερου myGLCD.setColor (114, 198, 206). myGLCD.fillRoundRect (50, y, 85, y-6); myGLCD.fillRoundRect (50, y+30, 85, y+36); } // ======== gameOver () - Προσαρμοσμένη λειτουργία void gameOver () {καθυστέρηση (3000); // 1 δευτερόλεπτο // Καθαρίζει την οθόνη και εκτυπώνει το κείμενο myGLCD.clrScr (); myGLCD.setColor (255, 255, 255); myGLCD.setBackColor (0, 0, 0); myGLCD.setFont (BigFont); myGLCD.print ("GAME OVER", CENTER, 40); myGLCD.print ("Βαθμολογία:", 100, 80); myGLCD.printNumI (βαθμολογία, 200, 80); myGLCD.print ("Επανεκκίνηση …", CENTER, 120); myGLCD.setFont (SevenSegNumFont); myGLCD.printNumI (2, ΚΕΝΤΡΟ, 150); καθυστέρηση (1000)? myGLCD.printNumI (1, ΚΕΝΤΡΟ, 150); καθυστέρηση (1000)? // Γράφει την υψηλότερη βαθμολογία στην EEPROM εάν (βαθμολογία> υψηλότερη βαθμολογία) {υψηλότερη βαθμολογία = βαθμολογία? EEPROM.write (0, υψηλότερη βαθμολογία); } // Επαναφέρει τις μεταβλητές για να ξεκινήσει τις τιμές θέσης xP = 319; yB = 50; fallRate = 0; βαθμολογία = 0; lastSpeedUpScore = 0; κίνησηRate = 3; gameStarted = false? // Επανεκκίνηση παιχνιδιού initateGame (); }

Βήμα 3: Τέλος

Εγινε!
Εγινε!

Έχουμε κάνει το κύκλωμα και έχουμε συντάξει τον κώδικα. Τώρα, απλώς πρέπει να συνδέσουμε το Arduino mega και να παίξουμε το παιχνίδι.

Εδώ, έχω έναν σύνδεσμο για ένα βίντεο που δείχνει πώς λειτουργεί αυτό το παιχνίδι και τι πρέπει να κάνετε για να το ρυθμίσετε:

drive.google.com/file/d/18hKQ8v2w2OkM_std-…

Ενημερώστε με αν έχετε προβλήματα παρακάτω.

Συνιστάται: