Μάθετε να δημιουργείτε μενού παιχνιδιών και να σχεδιάζετε διεπαφές χρήστη χωρίς κόπο χρησιμοποιώντας τα εργαλεία GUI της Arcade.

Τα μενού παιχνιδιών και οι διεπαφές χρήστη (UI) διαδραματίζουν κρίσιμο ρόλο στη βελτίωση της εμπειρίας χρήστη και της αφοσίωσης ενός παιχνιδιού. Το Arcade, μια δημοφιλής βιβλιοθήκη Python για την ανάπτυξη παιχνιδιών, παρέχει ισχυρά εργαλεία GUI (Graphical User Interface) που διευκολύνουν το σχεδιασμό και την υλοποίηση μενού παιχνιδιών και στοιχείων διεπαφής χρήστη.

Δημιουργήστε ένα απλό παιχνίδι

Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε pip εγκατεστημένο στη συσκευή σας. Χρησιμοποιήστε αυτήν την εντολή για να εγκαταστήσετε τη βιβλιοθήκη arcade:

pip εγκατάσταση arcade

Ξεκινήστε δημιουργώντας ένα απλό παιχνίδι χρησιμοποιώντας το Arcade.

Ο κώδικας που χρησιμοποιείται σε αυτό το άρθρο είναι διαθέσιμος σε αυτό Αποθετήριο GitHub και είναι δωρεάν για χρήση βάσει της άδειας MIT.

Αυτό το παιχνίδι θα διαθέτει ένα αντικείμενο παίκτη που μπορεί να κινηθεί αριστερά και δεξιά και ένα εχθρικό αντικείμενο. Εδώ είναι ο κωδικός του παιχνιδιού:

εισαγωγή στοά

ΠΛΑΤΟΣ = 800
ΥΨΟΣ = 600
PLAYER_SPEED = 25

τάξηΠαιχνίδι(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός):
super().__init__(WIDTH, HEIGHT, "Απλό παιχνίδι")
self.player_x = WIDTH // 2
self.enemy_x = ΠΛΑΤΟΣ - 50
self.game_over = Ψευδής

defεγκατάσταση(εαυτός):
arcade.set_background_color (arcade.color. ΑΣΠΡΟ)

defon_draw(εαυτός):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. ΜΠΛΕ)
arcade.draw_circle_filled (self.enemy_x, HEIGHT // 2, 20, arcade.color. ΤΟ ΚΟΚΚΙΝΟ)

defεκσυγχρονίζω(self, delta_time):
εαυτός.εχθρός_χ += 0.5
αν self.enemy_x >= WIDTH:
self.game_over = Αληθής

defon_key_press(αυτο, κλειδί, τροποποιητές):
αν κλειδί == arcade.key. ΑΡΙΣΤΕΡΑ:
self.player_x -= PLAYER_SPEED
ελιφ κλειδί == arcade.key. ΣΩΣΤΑ:
self.player_x += PLAYER_SPEED

παιχνίδι = Παιχνίδι ()
game.setup()
arcade.run()

Προσθήκη Game Over Screen

Προσθέστε ένα παιχνίδι πάνω από την οθόνη που εμφανίζει ένα μήνυμα όταν ο εχθρός κινείται έξω από το παράθυρο του παιχνιδιού. Χρησιμοποιήστε το arcade.gui. UImanager και arcade.gui. UImessageBox μαθήματα για να επιτευχθεί αυτό.

Δημιουργήστε ένα παράδειγμα του UImanager και ενεργοποιήστε το. μεσα στην on_draw μέθοδο, ελέγξτε αν το τέλος παιχνιδιού έχει οριστεί η σημαία και, αν ναι, σχεδιάστε τον διαχειριστή διεπαφής χρήστη. ο show_game_over_screen μέθοδος δημιουργεί α UImessageBox με ένα μήνυμα λήξης παιχνιδιού και το προσθέτει στον διαχειριστή διεπαφής χρήστη. Μπορείτε επίσης να ενεργοποιήσετε και να απενεργοποιήσετε τη διαχείριση διεπαφής χρήστη στο εκσυγχρονίζω μέθοδο που βασίζεται στην κατάσταση του παιχνιδιού.

Δημιουργήστε ένα νέο αρχείο με όνομα game-over.py και προσθέστε τον κωδικό με τις παρακάτω ενημερώσεις:

εισαγωγή στοά
από arcade.gui εισαγωγή UImanager, UIMessageBox

ΠΛΑΤΟΣ = 800
ΥΨΟΣ = 600
PLAYER_SPEED = 25

τάξηΠαιχνίδι(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός):
super().__init__(WIDTH, HEIGHT, "Απλό παιχνίδι")
self.player_x = WIDTH // 2
self.enemy_x = ΠΛΑΤΟΣ - 50
self.ui_manager = UImanager()
self.game_over = Ψευδής

defεγκατάσταση(εαυτός):
arcade.set_background_color (arcade.color. ΑΣΠΡΟ)
self.ui_manager.enable() # Ενεργοποιήστε τον διαχειριστή διεπαφής χρήστη

defon_draw(εαυτός):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. ΜΠΛΕ)
arcade.draw_circle_filled (self.enemy_x, HEIGHT // 2, 20, arcade.color. ΤΟ ΚΟΚΚΙΝΟ)
αν self.game_over:
self.ui_manager.draw()

defεκσυγχρονίζω(self, delta_time):
εαυτός.εχθρός_χ += 0.5
αν self.enemy_x >= WIDTH:
self.show_game_over_screen()
self.game_over = Αληθής
αν self.game_over:
self.ui_manager.enable()
αλλού:
self.ui_manager.disable()

defon_key_press(αυτο, κλειδί, τροποποιητές):
αν κλειδί == arcade.key. ΑΡΙΣΤΕΡΑ:
self.player_x -= PLAYER_SPEED
ελιφ κλειδί == arcade.key. ΣΩΣΤΑ:
self.player_x += PLAYER_SPEED

defshow_game_over_screen(εαυτός):
message_box = UImessageBox(
πλάτος=400,
ύψος=200,
message_text="Τέλος παιχνιδιού!"
)
self.ui_manager.add (message_box)

παιχνίδι = Παιχνίδι ()
game.setup()
arcade.run()

Παρακάτω είναι η έξοδος:

Προσθήκη κουμπιών

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

Δημιουργήστε ένα νέο αρχείο με όνομα buttons.py και προσθέστε τον κωδικό με τις παρακάτω ενημερώσεις:

defshow_game_over_screen(εαυτός):
message_box = UImessageBox(
πλάτος=400,
ύψος=200,
message_text="Τέλος παιχνιδιού!",
κουμπιά=("Επανεκκίνηση", "Εξοδος"),
callback=self.on_game_over_button_click
)
self.ui_manager.add (message_box)

defon_game_over_button_click(self, button_text):
αν button_text == "Επανεκκίνηση":
self.restart_game()
ελιφ button_text == "Εξοδος":
arcade.close_window()

defrestart_game(εαυτός):
self.game_over = Ψευδής
self.enemy_x = ΠΛΑΤΟΣ - 50
self.ui_manager.clear()

Παρακάτω είναι η έξοδος:

Στο show_game_over_screen μέθοδο, προσθέστε δύο κουμπιά, Επανεκκίνηση και Εξοδος, στο UImessageBox με τον καθορισμό τους στο κουμπιά παράμετρος. Παρέχετε επίσης μια λειτουργία επανάκλησης, on_game_over_button_click, για να χειριστείτε τα κλικ κουμπιών. Μέσα στη λειτουργία επανάκλησης, ελέγξτε σε ποιο κουμπί έγινε κλικ και εκτελέστε την αντίστοιχη ενέργεια.

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

UIDraggableMixin

ο UIDraggableMixin Η κλάση μπορεί να χρησιμοποιηθεί για να σύρεται οποιοδήποτε γραφικό στοιχείο διεπαφής χρήστη. Παρέχει λειτουργικότητα για τον χειρισμό της συμπεριφοράς μεταφοράς, επιτρέποντας στους χρήστες να μετακινούν στοιχεία διεπαφής χρήστη στην οθόνη. Ο συνδυασμός αυτού του mixin με άλλα γραφικά στοιχεία διεπαφής χρήστη σάς επιτρέπει να δημιουργήσετε παράθυρα ή πίνακες με δυνατότητα μεταφοράς στο παιχνίδι σας.

UImouseFilterMixin

ο UImouseFilterMixin class σάς δίνει τη δυνατότητα να συλλάβετε όλα τα συμβάντα του ποντικιού που συμβαίνουν σε ένα συγκεκριμένο widget. Αυτό είναι ιδιαίτερα χρήσιμο για γραφικά στοιχεία που μοιάζουν με παράθυρο, όπου θέλετε να αποτρέψετε τα συμβάντα του ποντικιού να επηρεάσουν τα υποκείμενα στοιχεία διεπαφής χρήστη. Φιλτράροντας τα συμβάντα του ποντικιού, μπορείτε να ελέγξετε ανεξάρτητα την αλληλεπίδραση εντός του γραφικού στοιχείου.

UIWindowLikeMixin

ο UIWindowLikeMixin class παρέχει συμπεριφορά παρόμοια με το παράθυρο σε ένα γραφικό στοιχείο. Χειρίζεται όλα τα συμβάντα του ποντικιού που συμβαίνουν εντός των ορίων του γραφικού στοιχείου και επιτρέπει τη μεταφορά του γραφικού στοιχείου. Αυτό είναι ιδανικό για τη δημιουργία παραθύρων ή πλαισίων με δυνατότητα μεταφοράς με τα οποία οι χρήστες μπορούν να αλληλεπιδράσουν στο παιχνίδι σας.

Επιφάνεια

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

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

Βέλτιστες πρακτικές για την ενσωμάτωση GUI

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

Σχέδιο και Πρωτότυπο

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

Διατηρήστε το Συνεπές

Διατηρήστε ένα σταθερό οπτικό στυλ και διάταξη στα μενού του παιχνιδιού και στα στοιχεία διεπαφής χρήστη. Αυτό βοηθά τους χρήστες να πλοηγούνται στο παιχνίδι σας πιο εύκολα και παρέχει μια συνεκτική εμπειρία.

Ανταποκρίσιμος σχεδιασμός

Σχεδιάστε τα στοιχεία διεπαφής χρήστη ώστε να αποκρίνονται και να προσαρμόζονται σε διαφορετικά μεγέθη και αναλύσεις οθόνης. Αυτό διασφαλίζει ότι τα μενού παιχνιδιών και η διεπαφή χρήστη παραμένουν εύχρηστα και ελκυστικά οπτικά σε διάφορες συσκευές.

Αποτελεσματικός χειρισμός συμβάντων

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

Σχόλια χρήστη

Παρέχετε σαφή και άμεσα σχόλια στους χρήστες όταν αλληλεπιδρούν με τα μενού παιχνιδιών και τα στοιχεία διεπαφής χρήστη. Οπτικές ενδείξεις, κινούμενα σχέδια και Η ηχητική ανατροφοδότηση στα παιχνίδια μπορεί να βελτιώσει την εμπειρία του χρήστη και κάνουν το παιχνίδι να αισθάνεται πιο κομψό.

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

Αυξήστε την αφοσίωση χρήστη με οπτικά ελκυστική διεπαφή χρήστη

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