Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Στις λειτουργίες Έναρξη και Round_setup
- Βήμα 2: Ροή παιχνιδιού
- Βήμα 3: Παιχνίδι 1: Αντίπαλος AI
- Βήμα 4: Παιχνίδι 2: Simulator Multiplayer
- Βήμα 5: Παιχνίδι 3: Jacdac Multiplayer
- Βήμα 6: Αφήστε την Μάχη του Cthulhu να ξεκινήσει
Βίντεο: (Multiplayer) Fighting στο GameGo With Makecode Arcade: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Το GameGo είναι μια συμβατή ρετρό φορητή κονσόλα παιχνιδιών Microsoft Makecode που αναπτύχθηκε από την εκπαίδευση TinkerGen STEM. Βασίζεται στο τσιπ STM32F401RET6 ARM Cortex M4 και είναι φτιαγμένο για εκπαιδευτές STEM ή απλά άτομα που τους αρέσει να διασκεδάζουν δημιουργώντας ρετρό βιντεοπαιχνίδια. Μπορείτε να ακολουθήσετε αυτό το σεμινάριο και να δοκιμάσετε το παιχνίδι στον προσομοιωτή Makecode Arcade και στη συνέχεια να το εκτελέσετε στο GameGo.
Στα άρθρα που δημοσιεύσαμε πριν δοκιμάσουμε ήδη το χέρι μας για να φτιάξουμε ένα παιχνίδι platformer και ένα Battle City Remake. Αυτή τη φορά ήθελα να χρησιμοποιήσω τη διεπαφή Jacdac για να συνδέσω δύο GameGo μαζί και να επιτρέψω στους παίκτες να παλέψουν για την υπεροχή σε ένα παιχνίδι μαχητικών πολλών παικτών. Δυστυχώς, διαπίστωσα ότι ο προγραμματισμός μπλοκ για το Jacdac multiplayer βρίσκεται σε beta φάση από τώρα και έχει κάποια σφάλματα - είναι ακόμα δυνατό να γίνουν πιο απλά παιχνίδια, αλλά δεν έχω τύχη για το παιχνίδι μάχης μου. Έτσι, σε αυτό το διδακτικό δημοσιεύω τρεις εκδόσεις του παιχνιδιού (το οποίο ονόμασα "Cthulhu Combat":))
- έκδοση ενός παίκτη με απλό αντίπαλο AI
- έκδοση για πολλούς παίκτες για αναπαραγωγή στην προσομοίωση Arcade
- έκδοση για πολλούς παίκτες με Jacdac (ελλιπής, θα ενημερωθεί αργότερα)
Προμήθειες
GameGo
Microsoft Makecode Arcade
Βήμα 1: Στις λειτουργίες Έναρξη και Round_setup
Θα περιγράψω λεπτομερώς την κωδικοποίηση του παιχνιδιού ενός παίκτη και στη συνέχεια στα επόμενα βήματα θα συζητήσουμε πώς να το κάνουμε
α) προσομοιωτής multiplayer
β) Jacdac multiplayer.
Ξεκινάμε με τη ρύθμιση του χάρτη πλακιδίων σε σκοτεινό μπουντρούμι και τη δημιουργία sprites για παίκτη και AI bot - και τα δύο θα ανήκουν στο είδος Player όμως. Ρυθμίσαμε την επιτάχυνση του άξονα y σε 600 - έτσι δεν θα πετάξουν μετά το άλμα. Αρχικοποιούμε επίσης βλήματα από bot και player πριν καλέσουμε τη λειτουργία round_setup. Η συνάρτηση round_setup φροντίζει για την προετοιμασία νέου γύρου για εμάς - ο λόγος που την καθιστούμε συνάρτηση είναι επειδή μπορεί να υπάρχουν έως και 3 γύροι συνολικά στο παιχνίδι και θέλουμε να αποφύγουμε την επανάληψη του ίδιου κώδικα. Σε αυτήν τη λειτουργία, πρώτα ελέγχουμε αν κάποιος από τους παίκτες έχει 2 νίκες - αν αυτή η συνθήκη αξιολογείται ως True, τότε τελειώνει το παιχνίδι. Εάν και οι δύο παίκτες έχουν λιγότερες από δύο νίκες, αυξάνουμε τη μεταβλητή round_num κατά μία και τοποθετούμε τους παίκτες στις αρχικές τους θέσεις, αναπληρώνουμε τη ζωή τους σε 100 και δηλώνουμε την έναρξη ενός νέου γύρου.
Βήμα 2: Ροή παιχνιδιού
Σε αυτό το παιχνίδι ο ίδιος ο κόσμος είναι στατικός και η ροή του παιχνιδιού συνδέεται με τις ενέργειες των παικτών. Σε τέσσερα μπλοκ καθορίζουμε τους περισσότερους κανόνες του παιχνιδιού, αυτά τα μπλοκ είναι: πατημένο το κουμπί επάνω, πατημένο το κουμπί κάτω, το κουμπί Α πατημένο και το κουμπί Β πατημένο. Ας ρίξουμε μια ματιά σε κάθε ένα από αυτά τα μπλοκ.
πατημένο το κουμπί επάνω - λογική διπλού άλματος. Αν πατήσουμε το κουμπί άλματος λιγότερο από 3 φορές, τότε θέτουμε την ταχύτητα του παίκτη vy - 140 (κινείται προς τα πάνω). Ο παίκτης μας έχει επιτάχυνση vy σε 600, οπότε μόλις πηδήξουμε, η ταχύτητά μας θα μειωθεί γρήγορα. Μόλις φτάσει στο 0 (δεν κινείται στον κάθετο άξονα) ορίζουμε ξανά το jump_count στο 0.
πατημένο το κουμπί κάτω - λογική ασπίδας επίθεσης. Εάν πατηθεί το κουμπί κάτω, ο παίκτης αλλάζει την εικόνα του σε "θωρακισμένο" και ορίζει τη μεταβλητή θωρακισμένη σε 1.
on κουμπί A πατημένο - πυροβολήστε ένα βλήμα. Αυτό είναι λίγο πολύ αυτονόητο.
στο κουμπί Β πατημένο - επίθεση πολέμου, παρόμοια με την ασπίδα στην εφαρμογή.
Ρυθμίζουμε τις εικόνες των sprit των παικτών και τις θωρακισμένες/επιθετικές μεταβλητές τους σε 0 κάθε 500 ms σε ενημέρωση παιχνιδιού κάθε μπλοκ.. ms. Θα μπορούσαμε να έχουμε ορίσει ανεξάρτητα χρονόμετρα για κάθε ενέργεια, αλλά για λόγους απλότητας θα χρησιμοποιήσουμε απλώς τον κύριο βρόχο ενημέρωσης παιχνιδιού.
Οι συνθήκες νίκης εδώ είναι αρκετά εύκολες - όταν η ζωή του παίκτη φτάσει στο 0, ο άλλος παίκτης έχει κερδίσει τον γύρο, τότε αποθηκεύουμε τον αριθμό των νικών ανά παίκτη σε μια μεταβλητή.
Τέλος, υπάρχουν δύο μπλοκ που ελέγχουν τις ζημιές από την επίθεση και τη ζημιά από την επίθεση. Σε κάθε ένα από αυτά ελέγχουμε για σύγκρουση Sprite και αν η μεταβλητή θωρακισμένης/επιθετικής επίθεσης για τον επιτιθέμενο παίκτη έχει οριστεί σε 0/1.
Βήμα 3: Παιχνίδι 1: Αντίπαλος AI
Στο πρώτο παιχνίδι θα δημιουργήσουμε έναν σχετικά απλό αντίπαλο AI που θα είναι δεύτερος παίκτης. Μέσα στην ενημέρωση του παιχνιδιού κάθε 200 ms κάνουμε πρώτα τον έλεγχο απόστασης μεταξύ παίκτη και AI - εάν είναι μικρότερο από 20, θέτουμε την AI σε κατάσταση μάχης ανεβάζοντας την πιθανότητα επίθεσης melee στα 30 και την πιθανότητα επίθεσης σε 30. Εάν η απόσταση είναι μεγαλύτερη από 20 θέτουμε την πιθανότητα επίθεσης πολέμου στο μηδέν (δεν υπάρχει πίντα στην επίθεση πολέμου, αφού ο παίκτης είναι πολύ μακριά) και μεταφέρουμε την πιθανότητα στο 70. Αφού έχουν οριστεί οι μεταβλητές για τις πιθανότητες δράσης, συνεχίζουμε την εκτέλεση αυτών των ενεργειών με τις συγκεκριμένες πιθανότητες. Αν προσπαθήσετε να παίξετε μόνοι σας απέναντι σε αυτό το απλό AI, θα δείτε ότι παρόλο που η συμπεριφορά του είναι πολύ απλή, το να κερδίσετε απέναντί του δεν είναι εύκολο - όπως συχνά σε περίπτωση αντιπάλων που ελέγχονται από υπολογιστή κερδίζει κυρίως επειδή μπορεί να κάνει περισσότερες ενέργειες ανά δευτερόλεπτο από άνθρωπος παίκτης.
Εάν κολλήσατε κατά την κωδικοποίηση, μπορείτε να κατεβάσετε τον πλήρη κώδικα στο αποθετήριο GitHub για αυτό το έργο και να τον ανοίξετε στο Makecode Arcade.
Βήμα 4: Παιχνίδι 2: Simulator Multiplayer
Η παραλλαγή του παιχνιδιού για δύο παίκτες στην προσομοίωση είναι πολύ παρόμοια με την έκδοση ενός παίκτη, εκτός από το ότι αντικαθιστούμε το μπλοκ συμπεριφοράς AI με τέσσερα μπλοκ πατημένα κουμπιά σε παίκτη 2 - με περιεχόμενο μέσα σε αυτά τα μπλοκ να αντικατοπτρίζει το περιεχόμενο των ίδιων μπλοκ για τον παίκτη 1. Έχετε μια ματιά στο στιγμιότυπο οθόνης για να έχετε καλύτερη ιδέα ποιες αλλαγές πρέπει να κάνετε. Εκτός από αυτό, πρέπει επίσης να προσθέσουμε τη μετακίνηση παίκτη 2 με κουμπιά αποκλεισμένη στη λειτουργία εκκίνησης και να αλλάξουμε την τελική οθόνη για το παιχνίδι παίκτη δύο σε WIN αντί για LOSE.
Βήμα 5: Παιχνίδι 3: Jacdac Multiplayer
Βρήκα μια κοινοτική εφαρμογή του Jacdac multiplayer με μπλοκ arcade Makecode σε αυτό το νήμα του φόρουμ
forum.makecode.com/t/new-extension-real-mu…
Δοκίμασα το παράδειγμα του παιχνιδιού εκεί (Space Invaders) και διαπίστωσα ότι λειτουργεί πολύ καλά. Δυστυχώς, η μηχανική του παιχνιδιού του Cthulhu Combat χρησιμοποιεί πολλές μεταβλητές και φαίνεται ότι οι επεκτάσεις Real Multiplayer δεν υποστηρίζουν μεταβλητές συγχρονισμού ακόμα - έτσι το έβαλα σε λειτουργία, οι ενέργειες των δύο παικτών συγχρονίζονται σε όλες τις συσκευές, αλλά η ζωή δεν μπορεί Δεν πέφτει στη συσκευή αντιπάλων. Επίσης, κάτι δεν πάει καλά με τη μηχανική του βλήματος, τα βλήματα δεν φαίνεται να εξαφανίζονται μετά το χτύπημα στον τοίχο, γεγονός που προκαλεί την απώλεια της σύνδεσης του παιχνιδιού μετά από περίπου 10 βλήματα.
Μπορείτε να δοκιμάσετε το multiplayer κατεβάζοντας το αρχείο-p.webp
Βήμα 6: Αφήστε την Μάχη του Cthulhu να ξεκινήσει
Υπάρχουν ακόμα πολλές βελτιώσεις που μπορούν να γίνουν στο απλό παιχνίδι μάχης - για παράδειγμα, μπορείτε να προσθέσετε πιο περίπλοκη συμπεριφορά AI ή να χρησιμοποιήσετε επέκταση για να προσθέσετε συνδυασμούς κουμπιών ή/και ακολουθίες κινούμενων σχεδίων. Καλή τύχη και διασκέδαση ενώ προγραμματίζετε τα δικά σας παιχνίδια με το GameGo και το Makecode Arcade.
Εάν κάνετε μια βελτιωμένη έκδοση του παιχνιδιού, μοιραστείτε το με τα παρακάτω σχόλια! Για περισσότερες πληροφορίες σχετικά με το GameGo και άλλο υλικό για κατασκευαστές και εκπαιδευτές STEM, επισκεφθείτε τον ιστότοπό μας, https://tinkergen.com/ και εγγραφείτε στο ενημερωτικό μας δελτίο.
Συνιστάται:
Πώς να μετακινηθείτε στο TEXT στο I2C 0.91 "128X32 OLED DISPLAY: 6 βήματα
Πώς να μετακινηθείτε στο TEXT σε I2C 0.91 "128X32 OLED DISPLAY: Σε αυτό το σεμινάριο θα μάθουμε πώς να μετακινείτε το TEXT στο I2C 0.91" 128X32 OLED DISPLAY χρησιμοποιώντας λογισμικό Arduino και Visuino. Δείτε το βίντεο
Platformer με άπειρα επίπεδα στο GameGo With Makecode Arcade: 5 βήματα (με εικόνες)
Platformer με άπειρα επίπεδα στο GameGo With Makecode Arcade: Το GameGo είναι μια συμβατή ρετρό φορητή κονσόλα παιχνιδιών συμβατή με το Microsoft Makecode που αναπτύχθηκε από την εκπαίδευση TinkerGen STEM. Βασίζεται στο τσιπ STM32F401RET6 ARM Cortex M4 και είναι φτιαγμένο για εκπαιδευτές STEM ή απλά άτομα που τους αρέσει να διασκεδάζουν δημιουργώντας ρετρό βιντεοπαιχνίδι
Τροποποίηση στο Left Handed DSLR Holder του Bertus52x11. (με προσθήκη λαβής στο στόμα): 4 βήματα
Τροποποίηση στο αριστερόχειρο κάτοχο DSLR του Bertus52x11. (με προσθήκη στόματος): Νωρίτερα σήμερα το bertus52x11 δημοσίευσε την πιο έξυπνη ιδέα. Απευθύνεται σε άτομα που χρησιμοποιούν μόνο το αριστερό τους χέρι - μόνιμα ή χρονικά. Η αρχική του ιδέα ήταν να προσθέσει ένα γάντζο αντίχειρα στον σύνδεσμο τρίποδου από κάτω, επιτρέποντας στην κάμερα να κρατηθεί
Ο γρήγορος οδηγός για τη δημιουργία βίντεο με το iPhone σας και τη μεταφόρτωσή του στο Facebook ή στο YouTube: 9 βήματα
Ο γρήγορος οδηγός για τη δημιουργία βίντεο με το iPhone σας και τη μεταφόρτωσή του στο Facebook ή στο YouTube: Χρησιμοποιήστε αυτήν την απλή διαδικασία 5 βημάτων (το Instructables το κάνει να μοιάζει με περισσότερα βήματα από ό, τι είναι στην πραγματικότητα) για να δημιουργήσετε και να ανεβάσετε το πρώτο σας βίντεο YouTube ή Facebook - χρησιμοποιώντας μόνο το iPhone σας
Battle City Remake στο GameGo With Makecode Arcade: 4 βήματα (με εικόνες)
Battle City Remake στο GameGo With Makecode Arcade: Το GameGo είναι μια συμβατή ρετρό φορητή κονσόλα παιχνιδιών Microsoft Makecode που αναπτύχθηκε από την εκπαίδευση TinkerGen STEM. Βασίζεται στο τσιπ STM32F401RET6 ARM Cortex M4 και είναι φτιαγμένο για εκπαιδευτές STEM ή απλά άτομα που τους αρέσει να διασκεδάζουν δημιουργώντας ρετρό βίντεο ga