Θέλετε να βελτιώσετε τον χειρισμό του κινδύνου από το παιχνίδι σας; Μετατρέψτε τις ζωές σε υγεία και προσθέστε μια επιπλέον διάσταση στο παιχνίδι σας.

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

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

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

Πρώτα, εγκαταστήστε το pip στη συσκευή σας και χρησιμοποιήστε την παρακάτω εντολή για να εγκαταστήσετε τη βιβλιοθήκη arcade:

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

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

instagram viewer

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

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

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

# Ορισμός διαστάσεων παραθύρου
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

# Ρυθμίστε την ταχύτητα κίνησης του παίκτη
PLAYER_MOVEMENT_SPEED = 5
λευκό = στοά.χρώμα. ΑΣΠΡΟ
μπλε = στοά.χρώμα. ΜΠΛΕ
κόκκινο = στοά.χρώμα. ΤΟ ΚΟΚΚΙΝΟ

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
super().__init__(πλάτος, ύψος)
arcade.set_background_color (λευκό)

# Δημιουργήστε αντικείμενα παίκτη και εχθρό
self.player = arcade. SpriteCircle(30, μπλε)
αυτο.εχθρός = στοά. SpriteCircle(30, το κόκκινο)
self.player.center_x = 100
self.player.center_y = 100
εαυτός.εχθρός.κέντρο_χ = 400
εαυτός.εχθρός.κέντρο_υ = 300

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

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

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

defκύριος():
παιχνίδι = GameWindow (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

αν __όνομα__ == "__κύριος__":
κύριος()

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

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

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
# ...
# Μεταβλητές και σταθερές που σχετίζονται με την υγεία
self.player_health = 100

# Πόντοι υγείας θεραπεύονται ανά δευτερόλεπτο
αυτο.θεραπεία_ποσοστό = 1

# Χρονόμετρο για θεραπεία
self.heal_timer = 0

defεκσυγχρονίζω(self, delta_time):
# ...
# Ενημερώστε το χρονόμετρο θεραπείας
self.heal_timer += delta_time

# Θεραπεύστε την υγεία του παίκτη κάθε 2 δευτερόλεπτα
αν self.heal_timer >= 2:
self.player_health += self.heal_rate
self.heal_timer = 0

# Βεβαιωθείτε ότι η υγεία δεν υπερβαίνει τη μέγιστη τιμή
αν self.player_health > 100:
self.player_health = 100

Εφαρμογή μηχανικής βλάβης και θεραπείας

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

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
# ...

defεκσυγχρονίζω(self, delta_time):
# Εντοπίστε συγκρούσεις μεταξύ παίκτη και εχθρού
αν arcade.check_for_collision (self.player, self.enemi):
self.player_health -= 5

# ...

Διαχείριση σεναρίων θανάτου παικτών και ολοκλήρωσης του παιχνιδιού

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

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
# ...

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

# Ελέγξτε εάν η υγεία του παίκτη είναι μηδέν ή χαμηλότερη
αν self.player_health <= 0:
# Τερματίστε το παιχνίδι
arcade.close_window()

# ...

Οπτικοποίηση του Health Bar

Μια οπτική αναπαράσταση της υγείας του παίκτη μπορεί να βελτιώσει σημαντικά την εμπειρία παιχνιδιού. Δημιουργήστε μια γραμμή υγείας χρησιμοποιώντας ορθογώνια για να εμφανίσετε το τρέχον επίπεδο υγείας. Δημιουργήστε ένα νέο αρχείο με όνομα health-bar.py και προσθέστε τον κωδικό με τις παρακάτω ενημερώσεις:

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
# ...

defon_draw(εαυτός):
arcade.start_render()
self.player.draw()
self.enemy.draw()
γκρι = στοά.χρώμα. ΑΝΟΙΧΤΟ ΓΚΡΙ
πράσινο = στοά.χρώμα. ΠΡΑΣΙΝΟΣ

# Σχεδιάστε τη γραμμή υγείας
arcade.draw_rectangle_filled (SCREEN_WIDTH // 2, 20,
SCREEN_WIDTH, 20, γκρι)

health_width = self.player_health / 100 * SCREEN_WIDTH

arcade.draw_rectangle_filled (health_width // 2, 20,
υγεία_πλάτος, 20, πράσινο)

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

Συμπεριλαμβανομένων πρόσθετων χαρακτηριστικών

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

Αριθμητική οθόνη υγείας

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

# Μέσα στη μέθοδο on_draw().
μαύρο = στοά.χρώμα. ΜΑΥΡΟΣ
κείμενο = στ" Υγεία: {self.player_health}"
arcade.draw_text (κείμενο, 10, 10, μαύρο, 14)

Υγεία Power-Ups

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

# Μέσα στη μέθοδο ενημέρωσης().
αν arcade.check_for_collision (self.player, self.power_up):
self.player_health += 20

# Αφαιρέστε το power-up από το παιχνίδι
self.power_up.kill()

Διάφοροι τύποι εχθρού

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

# Μέσα στη μέθοδο ενημέρωσης().
αν arcade.check_for_collision (self.player, self.enemi):
αν εαυτός.εχθρός.τύπος == "αδύναμος":
self.player_health -= 5
ελιφ εαυτός.εχθρός.τύπος == "ισχυρός":
self.player_health -= 20

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

Βέλτιστες Πρακτικές για το Σύστημα Υγείας

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

Κάντε το Modular

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

Επικύρωση εισροών και διασφαλίσεις

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

Μηχανισμός αποθήκευσης και φόρτωσης

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

Δοκιμές και χειρισμός σφαλμάτων

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

Συνεπής ανατροφοδότηση για την υγεία

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

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

Κάντε τα παιχνίδια πιο διασκεδαστικά με το σύστημα υγείας

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

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