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

Battle City Remake στο GameGo With Makecode Arcade: 4 βήματα (με εικόνες)
Battle City Remake στο GameGo With Makecode Arcade: 4 βήματα (με εικόνες)

Βίντεο: Battle City Remake στο GameGo With Makecode Arcade: 4 βήματα (με εικόνες)

Βίντεο: Battle City Remake στο GameGo With Makecode Arcade: 4 βήματα (με εικόνες)
Βίντεο: Yugioh Yugi's Legendary Decks Box Opening!!! 2024, Νοέμβριος
Anonim
Image
Image

Το GameGo είναι μια συμβατή ρετρό φορητή κονσόλα παιχνιδιών Microsoft Makecode που αναπτύχθηκε από την εκπαίδευση TinkerGen STEM. Βασίζεται στο τσιπ STM32F401RET6 ARM Cortex M4 και είναι φτιαγμένο για εκπαιδευτές STEM ή απλά άτομα που τους αρέσει να διασκεδάζουν δημιουργώντας ρετρό βιντεοπαιχνίδια. Μπορείτε να ακολουθήσετε αυτό το σεμινάριο και να δοκιμάσετε το παιχνίδι στον προσομοιωτή Makecode Arcade και στη συνέχεια να το εκτελέσετε στο GameGo.

Σε αυτό το άρθρο θα προσπαθήσουμε να αναδημιουργήσουμε ένα κλασικό παιχνίδι Battle City tank shooter, το οποίο αρχικά παρήχθη και δημοσιεύτηκε το 1985 από την Namco για το Nintendo Entertainment System (NES). Στο αρχικό παιχνίδι ο παίκτης ελέγχει μια δεξαμενή και πυροβολεί βλήματα για να καταστρέψει τα εχθρικά άρματα μάχης. Τα εχθρικά άρματα προσπαθούν να καταστρέψουν τη βάση του παίκτη, καθώς και το ίδιο το τανκ του παίκτη. Θα κάνουμε κάποια τροποποίηση στο παιχνίδι για να προσαρμόσουμε καλύτερα τις πρακτικές προγραμματισμού μπλοκ με το GameGo, αλλά το ριμέικ μας θα διατηρήσει παρόμοια ομοιότητα με το αρχικό παιχνίδι. Ας ξεκινήσουμε!

Προμήθειες

GameGo

Βήμα 1: Το Alter -ego μας - Yellow Tank

Το Alter -ego μας - Yellow Tank
Το Alter -ego μας - Yellow Tank

Ανοίξτε το Makecode Arcade στη διεύθυνση https://arcade.makecode.com/ και κάντε κλικ στο νέο έργο. Θα αρχίσουμε να φτιάχνουμε το alter-ego μας την κίτρινη δεξαμενή. Επιλέξτε Set mySprite to sprite of kind player block και σχεδιάστε μια κίτρινη δεξαμενή στραμμένη προς τα πάνω ως αρχικό μας sprite, βάλτε αυτό το μπλοκ μέσα στο μπλοκ εκκίνησης. Προσθήκη μετακίνησης mySprite με μπλοκ κουμπιών. Τώρα έχουμε μια δεξαμενή που μπορούμε να μετακινήσουμε με κουμπιά στην προσομοίωση! Υπέροχο, αλλά έχει πάντα την ίδια κατεύθυνση, ακόμη και όταν κατεβαίνουμε προς τα κάτω ή πλάγια…

Για να το διορθώσουμε, ας προσθέσουμε άλλα τέσσερα μπλοκ, ένα για κάθε κουμπί κατεύθυνσης. Δημιουργήστε μια νέα μεταβλητή, που ονομάζεται κατεύθυνση - θα αποθηκεύσουμε την κατεύθυνση κίνησης της δεξαμενής μας σε αυτήν, 100 θα αντιστοιχούν προς τα κάτω, -100 θα αντιστοιχούν προς τα πάνω, 200 για δεξιά και -200 για αριστερά. Γιατί αυτοί οι αριθμοί; Θα δείτε αργότερα, όταν προσθέσουμε τα βλήματα που θα πυροβολήσει η δεξαμενή μας. Η λογική σε κάθε τέσσερα από αυτά τα μπλοκ είναι πολύ απλή - ελέγχουμε αν η νέα κατεύθυνση (από το πάτημα κουμπιού) είναι η ίδια με την κατεύθυνση πριν. Αν είναι, βασικά δεν κάνουμε καμία αλλαγή. Εάν όχι, αλλάζουμε το σπρίιτ της δεξαμενής και σε περίπτωση με κατεύθυνση προς τα κάτω και προς τα αριστερά αναποδογυρίζουμε την εικόνα του σπρίιτ για να αποφύγουμε τη σχεδίαση πρόσθετων σπριτ. Τέλος, ας εκχωρήσουμε την αρχική τιμή της κατεύθυνσης στο -100 (δεξαμενή προς τα πάνω), αφού έτσι ξεκινά το παιχνίδι το τανκ μας. Δοκιμάστε να μετακινήσετε το κίτρινο δοχείο τώρα, το sprite θα αλλάξει ανάλογα με την κατεύθυνση της κίνησης τώρα! Εξαιρετικό, τώρα ας προσθέσουμε κουκκίδες.

Θα εκτοξεύσουμε σφαίρες με βλήμα σε βλήμα (σχεδιάστε μικρό ασημένιο τετράγωνο για αυτό το sprite) από το mySprite με ταχύτητες vx vy. Μέσα στο κουμπί ενεργοποίησης Ένα πατημένο μπλοκ, πρέπει να ελέγξουμε για την απόλυτη τιμή της κατεύθυνσης για να δούμε αν η κίτρινη δεξαμενή είναι στραμμένη προς τα πάνω/κάτω αριστερά/δεξιά. Στη συνέχεια προχωρούμε στην εκτόξευση του βλήματος με τη μεταβλητή ταχύτητας κατεύθυνσης -γι 'αυτό είχαμε -100/100/-200/200 για τιμές κατεύθυνσης.

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

Βήμα 2: Βγάλτε τους εχθρούς

Βγάλτε τους εχθρούς
Βγάλτε τους εχθρούς
Βγάλτε τους εχθρούς
Βγάλτε τους εχθρούς

Θα ξεκινήσουμε αυτό το βήμα δημιουργώντας μια δέσμη νέων μεταβλητών: δύο συστοιχίες (μία για τη συγκράτηση εχθρικών sprites και μία άλλη για τη διατήρηση κατευθύνσεων εχθρού), μεταβλητή χρόνου αναπαραγωγής για την αποθήκευση του χρονικού διαστήματος μεταξύ των ωοτοκιών, αριθμός εχθρών για την αποθήκευση του μέγιστου αριθμού εχθρών Την ίδια στιγμή. Θα προσθέσουμε επίσης δύο βλήματα (βλήμα και εχθρικό βλήμα) που εκτοξεύονται στο μπλοκ εκκίνησης - αυτό θα μας βοηθήσει να αποφύγουμε ένα σφάλμα αργότερα.

Στη συνέχεια δημιουργούμε στην ενημέρωση παιχνιδιού κάθε μπλοκ… ms, εισάγουμε μεταβλητή spawn_time εκεί. Η λογική στο εσωτερικό του μπλοκ είναι απλή - εάν ο συνολικός αριθμός των εχθρών στο πεδίο της μάχης είναι μικρότερος από τον μέγιστο επιτρεπόμενο αριθμό εχθρών, προσθέστε έναν εχθρό στη λίστα_ εχθρού και προσθέστε 200 (δεξιά) κατεύθυνση για αυτόν τον εχθρό.

Στη συνέχεια, στο δημιουργημένο sprite του είδους Enemy block προσθέτουμε μερικά γραφικά εφέ, το τοποθετούμε σε ένα τυχαίο κενό πλακίδιο και καλούμε τη λειτουργία pick_direction για αυτό το sprite. Στο sprite of kind Enemy χτυπάει στον τοίχο, ονομάζουμε την ίδια λειτουργία, pick_direction.

Τι υπάρχει σε αυτήν τη λειτουργία; Εδώ τα πράγματα αρχίζουν να γίνονται λίγο περίπλοκα, οπότε περιμένετε. Υπάρχει 50 τοις εκατό πιθανότητα να ανέβει το εχθρικό άρμα και το 50 τοις εκατό να πέσει - αλλάζουμε ανάλογα το sprite. Το μόνο κόλπο εδώ είναι ότι πρέπει επίσης να αλλάξουμε την τιμή που αντιστοιχεί στη συγκεκριμένη δεξαμενή του εχθρού στη λίστα dijmin_κατευθύνσεων στη νέα της κατεύθυνση, οπότε θα θέλαμε να πυροβολήσει σφαίρες προς τη σωστή κατεύθυνση. Γι 'αυτό βρίσκουμε το ευρετήριο του sprite του εχθρού στη λίστα dijmin_εκπλήρωσης και αλλάζουμε την τιμή αυτού του στοιχείου στη λίστα εχθρικών_κατευθύνσεων.

Τέλος, ας προσθέσουμε βολές. Προσθέτουμε ένα άλλο στην ενημέρωση παιχνιδιού κάθε μπλοκ 500 ms και βάζουμε ένα στοιχείο για στη λίστα dijmin_προσώπως. Με 30% πιθανότητα ένα εχθρικό σπρίτ να πυροβολήσει το εχθρικό βλήμα προς την κατεύθυνση της κίνησής του.

Αν ξεκινήσουμε τώρα το παιχνίδι στην προσομοίωση, μπορούμε να δούμε την κίτρινη δεξαμενή μας και τα εχθρικά τανκς να εμφανίζονται στο ίδιο σημείο και να πηγαίνουν στον κενό χώρο. Μπορούμε να πυροβολήσουμε και αυτοί να πυροβολήσουν την κίτρινη δεξαμενή μας, αλλά τίποτα δεν θα συνέβαινε. Αισθάνεται τόσο αδιάφορο ακόμα:) Ας προσθέσουμε τις διακοσμήσεις και τη μηχανική του παιχνιδιού ως το τελευταίο βήμα.

Βήμα 3: 42 του Παιχνιδιού

42 του παιχνιδιού
42 του παιχνιδιού
42 του παιχνιδιού
42 του παιχνιδιού
42 του παιχνιδιού
42 του παιχνιδιού

Θα ξεκινήσουμε αυτό το βήμα προσθέτοντας ζωή και βαθμολογία από την καρτέλα Πληροφορίες και ορίζοντας τη ζωή στο 10 και βαθμολογούμε στο μηδέν. Στη συνέχεια, προσθέτουμε χάρτη πλακιδίων μπλοκ σε…. Σχεδιάστε το χάρτη αρχείων για να μοιάζει με αυτό που βλέπετε στο παραπάνω στιγμιότυπο οθόνης. Μην ξεχάσετε να προσθέσετε τους τοίχους!

Ας προσθέσουμε στο Sprite του είδους Projectile που επικαλύπτεται σε άλλους Player του Prite of kind - αυτό συμβαίνει όταν οι σφαίρες του εχθρού χτυπούν το κίτρινο τανκ μας. Πρέπει να βεβαιωθούμε ότι αυτά τα βλήματα είναι σφαίρες του εχθρού και όχι δικά μας, οπότε θα προσθέσουμε ότι εάν η κατάσταση εντός του μπλοκ και αν αξιολογηθεί ως True, τότε αφαιρούμε ένα από τον αριθμό ζωής. Παρόμοια με αυτό, σε ένα άλλο μπλοκ σε sprite του είδους Projectile επικαλύπτεται σε άλλοSprite of kind Enemy βεβαιωνόμαστε ότι το βλήμα είναι ένα βλήμα από κίτρινη δεξαμενή και αν αυτή η κατάσταση εκτιμηθεί ως True, καταστρέφουμε το otherSprite (το εχθρικό τανκ), το αφαιρούμε από τη λίστα της dijmin_sprite_list και προσθέστε ένα στο σκορ.

Το τελευταίο πράγμα είναι οι συνθήκες νίκης και ήττας - για τη νίκη, θα ελέγξουμε αν το σκορ είναι υψηλότερο ή ισούται με 10 στο μπλοκ για πάντα. Αν είναι, τότε εμφανίζουμε την οθόνη νίκης. Και στο μπλοκ on life zero εμφανίζουμε την οθόνη Game Over.

Τώρα δοκιμάστε το στην προσομοίωση για να δείτε αν το παιχνίδι λειτουργεί όπως αναμενόταν. Στη συνέχεια, ανεβάστε το στο GameGo και απολαύστε τη συντριβή των εχθρικών τανκς!

Βήμα 4: Ατελείωτο παιχνίδι και βελτιώσεις

Ατελείωτο παιχνίδι και βελτιώσεις
Ατελείωτο παιχνίδι και βελτιώσεις

Στο αποθετήριο GitHub μας μπορείτε να κατεβάσετε δύο αρχεία για το Makecode arcade - το ένα είναι ακριβώς το ίδιο που θα έχετε αν ακολουθήσετε αυτό το διδακτικό και το άλλο είναι αναβαθμισμένη έκδοση, η οποία έχει δημιουργήσει τυχαία πρόοδο επιπέδου. Έχει 10 επίπεδα, το καθένα δημιουργείται τυχαία με αυξημένο αριθμό εχθρών σε κάθε διαδοχικό επίπεδο.

Και φυσικά, υπάρχουν ακόμη περισσότερα πράγματα που εσείς ή οι μαθητές σας μπορείτε να προσθέσετε στο παιχνίδι πέρα από αυτό! Υπάρχει καλύτερη μουσική, σπασμένοι τοίχοι, διαφορετικές συνθήκες νίκης και ούτω καθεξής!

Εάν κάνετε μια βελτιωμένη έκδοση του παιχνιδιού, μοιραστείτε το με τα παρακάτω σχόλια! Για περισσότερες πληροφορίες σχετικά με το GameGo και άλλο υλικό για κατασκευαστές και εκπαιδευτές STEM, επισκεφθείτε τον ιστότοπό μας, https://tinkergen.com/ και εγγραφείτε στο ιστολόγιό μας.

Το TinkerGen ξεκίνησε μια καμπάνια Kickstarter για το MARK (Make A Robot Kit), ένα κιτ ρομπότ για τη διδασκαλία κωδικοποίησης, ρομποτικής, AI!

Συνιστάται: