Βάλτε τον κύριο χαρακτήρα σας να κινείται ανταποκρινόμενο στις πληροφορίες του παίκτη με τα συμβάντα του πληκτρολογίου και του ποντικιού της βιβλιοθήκης Arcade.

Το Arcade είναι μια δημοφιλής βιβλιοθήκη Python που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε παιχνίδια arcade 2D. Είναι μια εύχρηστη βιβλιοθήκη που παρέχει ένα απλό πλαίσιο για τη δημιουργία παιχνιδιών με Python.

Ένα από τα βασικά στοιχεία κάθε παιχνιδιού είναι η κίνηση των παικτών.

Δημιουργία ενός απλού παιχνιδιού στο Arcade

Μπορείτε να βρείτε το πλήρες κώδικα σε αυτό το αποθετήριο GitHub.

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

βιβλιοθήκη εγκατάστασης pip

Μετά από αυτό, δημιουργήστε μια κλάση Player ως υποκλάση του στοά. Ξωτικό τάξη, και α MyGame κλάση ως υποκατηγορία του στοά. Παράθυρο. ο MyGame Η κλάση θα έχει μεθόδους για να ρυθμίσει τα αντικείμενα του παιχνιδιού, να τα αποδώσει στην οθόνη, να ενημερώσει την κατάσταση του παιχνιδιού και να χειριστεί τις εισόδους του χρήστη. Ο κώδικας για τη δημιουργία της οθόνης του παιχνιδιού και του αντικειμένου του παίκτη είναι ο εξής:

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

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

τάξηΠαίχτης(στοά. Ξωτικό):
def__μέσα σε αυτό__(εαυτός):
super().__init__("player.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2

τάξηMyGame(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Το παιχνίδι μου")
αυτο.παίκτης = Κανένας
arcade.set_background_color (arcade.color. ΜΑΥΡΟΣ)

defεγκατάσταση(εαυτός):
self.player = Παίκτης()

defon_draw(εαυτός):
arcade.start_render()
self.player.draw()

defεκσυγχρονίζω(self, delta_time):
πέρασμα

MyGame().run()

Προσθήκη κίνησης παίκτη με είσοδο πληκτρολογίου

Τώρα που έχετε δημιουργήσει την οθόνη του παιχνιδιού και το αντικείμενο του παίκτη, μπορείτε να μετακινήσετε τον παίκτη ως απόκριση στην είσοδο του πληκτρολογίου. Ορίστε το on_key_press() και on_key_release() μεθόδους, τις οποίες θα καλέσετε όταν η συσκευή αναπαραγωγής πατήσει ή αφήσει ένα πλήκτρο.

defon_key_press(αυτο, κλειδί, τροποποιητές):
αν κλειδί == arcade.key. ΑΡΙΣΤΕΡΑ:
self.player.change_x = -5
ελιφ κλειδί == arcade.key. ΣΩΣΤΑ:
self.player.change_x = 5
ελιφ κλειδί == arcade.key. ΠΑΝΩ:
self.player.change_y = 5
ελιφ κλειδί == arcade.key. ΚΑΤΩ:
self.player.change_y = -5

defon_key_release(αυτο, κλειδί, τροποποιητές):
αν κλειδί == arcade.key. ΑΡΙΣΤΕΡΑ ή κλειδί == arcade.key. ΣΩΣΤΑ:
self.player.change_x = 0
ελιφ κλειδί == arcade.key. ΠΑΝΩ ή κλειδί == arcade.key. ΚΑΤΩ:
self.player.change_y = 0

Όταν προσθέτετε κίνηση του παίκτη με εισόδους πληκτρολογίου, μπορείτε να προσαρμόσετε την ταχύτητα κίνησης αλλάζοντας την τιμή που έχει εκχωρηθεί self.player.change_x και self.player.change_y. Μπορείτε επίσης να προσθέσετε συνθήκες για να περιορίσετε την κίνηση του παίκτη μέσα στην οθόνη του παιχνιδιού.

Προσθήκη κίνησης παίκτη με είσοδο ποντικιού

Εκτός από τις εισόδους πληκτρολογίου, μπορείτε επίσης να προσθέσετε κίνηση του παίκτη χρησιμοποιώντας την είσοδο του ποντικιού. Ορίστε το on_mouse_motion() μέθοδο, η οποία θα εκτελεστεί όταν ο παίκτης μετακινήσει το ποντίκι. Μέσα στη μέθοδο, ορίστε το κέντρο_χ και κέντρο_υ ιδιότητες του αντικειμένου του προγράμματος αναπαραγωγής στην τρέχουσα θέση του ποντικιού.

defon_mouse_motion(εαυτός, x, y, dx, dy):
self.player.center_x = x
self.player.center_y = y

Όταν προσθέτετε κίνηση του παίκτη με είσοδο ποντικιού, μπορείτε να προσαρμόσετε τη συμπεριφορά του αντικειμένου του προγράμματος αναπαραγωγής όταν ο χρήστης κάνει κλικ ή κρατά πατημένο το ποντίκι του ορίζοντας μεθόδους όπως π. on_mouse_press() ή on_mouse_drag(). Μπορείτε να χρησιμοποιήσετε αυτές τις μεθόδους για να ενεργοποιήσετε τις ενέργειες του παίκτη, όπως το σουτ ή το άλμα, ανάλογα με τους μηχανισμούς του παιχνιδιού.

Παρουσίαση πρόσθετων δυνατοτήτων

Μπορείτε να βελτιώσετε περαιτέρω την κίνηση του παίκτη λαμβάνοντας υπόψη την επιτάχυνση και την επιβράδυνση. Τροποποιήστε το on_key_press() μέθοδος αφαίρεσης ή προσθήκης στο αλλαγή_χ και change_y ιδιότητες του αντικειμένου του παίκτη, ανάλογα με την κατεύθυνση κίνησης. Ρυθμίστε επίσης το αλλαγή_χ και change_y ιδιότητες σε 0 στο on_key_release() μέθοδο, όπως και πριν.

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

defon_key_release(αυτο, κλειδί, τροποποιητές):
αν κλειδί == arcade.key. ΑΡΙΣΤΕΡΑ ή κλειδί == arcade.key. ΣΩΣΤΑ:
self.player.change_x = 0
ελιφ κλειδί == arcade.key. ΠΑΝΩ ή κλειδί == arcade.key. ΚΑΤΩ:
self.player.change_y = 0

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

defεκσυγχρονίζω(self, delta_time):
self.player.update()

# Ελέγξτε για συγκρούσεις μεταξύ παίκτη και άλλων αντικειμένων παιχνιδιού
collisions = arcade.check_for_collision_with_list (self.player, self.enemy_list)

Για σύγκρουση σε συγκρούσεις:
collision.kill()

Κάντε ελκυστικά παιχνίδια με διαδραστική κίνηση παικτών

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

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