Ενισχύστε τα arcade παιχνίδια σας παρουσιάζοντας εχθρούς.

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

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

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

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

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

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

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

# Διαστάσεις παραθύρου
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

# Χαρακτηριστικά παίκτη
PLAYER_RADIUS = 25
PLAYER_SPEED = 5

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):

instagram viewer

def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
super().__init__(πλάτος, ύψος)
arcade.set_background_color (arcade.color. ΑΣΠΡΟ)
self.player_x = πλάτος // 2

defon_draw(εαυτός):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, PLAYER_RADIUS, PLAYER_RADIUS, arcade.color. ΜΠΛΕ)

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

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

defκύριος():
παράθυρο = GameWindow (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

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

Δημιουργώντας έναν απλό εχθρό

Για να δημιουργήσετε έναν εχθρό που σκοτώνει τον παίκτη κατά τη σύγκρουση, δημιουργήστε έναν άλλο κύκλο στην οθόνη. Στο on_draw λειτουργία, μπορείτε να σχεδιάσετε αυτόν τον εχθρικό κύκλο και να ελέγξετε για συγκρούσεις στο εκσυγχρονίζω μέθοδος. Μπορείτε επίσης να χρησιμοποιήστε sprites για εχθρούς.

# Προσθήκη στην κατηγορία GameWindow

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
# ...

def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
# ...

# Ιδιότητες εχθρού
self.enemy_x = πλάτος // 2
self.enmy_y = ύψος - PLAYER_RADIUS
εαυτός.εχθρός_ακτίνα = 20

defon_draw(εαυτός):
# ...
arcade.draw_circle_filled (self.enemy_x, self.enemy_y, self.enemy_radius, arcade.color. ΤΟ ΚΟΚΚΙΝΟ)

defεκσυγχρονίζω(self, delta_time):
αν self.is_collision (self.player_x, self.player_y, self.enemy_x, self.enemy_y, PLAYER_RADIUS, self.enemy_radius):
Τυπώνω("Τέλος παιχνιδιού!")

defείναι_σύγκρουση(εαυτός, x1, y1, x2, y2, ακτίνα 1, ακτίνα 2):
απόσταση_τετράγωνο = (x1 - x2) ** 2 + (y1 - y2) ** 2
radius_sum_squared = (ακτίνα1 + ακτίνα 2) ** 2
ΕΠΙΣΤΡΟΦΗ απόσταση_τετράγωνο <= ακτίνα_άθροισμα_τετράγωνο

Κάνοντας τον εχθρό να ακολουθεί τον παίκτη

Σε ορισμένα παιχνίδια, οι εχθροί μπορούν να κυνηγήσουν τον παίκτη, προσθέτοντας ένα δυναμικό στοιχείο στο παιχνίδι. Για να δημιουργήσετε έναν ακόλουθο εχθρό, πρέπει να ενημερώσετε τη θέση του με βάση τη θέση του παίκτη. Οποτεδήποτε ο παίκτης κινείται, ο εχθρός κινείται προς την ίδια κατεύθυνση. Μπορείτε να το επιτύχετε τροποποιώντας το εκσυγχρονίζω μέθοδος. Δημιουργήστε ένα νέο αρχείο με όνομα εχθρός-follow-player.py και προσθέστε τον κωδικό με τις παρακάτω ενημερώσεις:

# Προσθήκη στην κατηγορία GameWindow

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
# ...

defεκσυγχρονίζω(self, delta_time):
αν self.player_x < self.enmy_x:
self.enmy_x -= PLAYER_SPEED
ελιφ self.player_x > self.enemy_x:
self.enmy_x += PLAYER_SPEED

αν self.is_collision (self.player_x, self.player_y,
self.enmy_x, self.enmy_y,
PLAYER_RADIUS, ENEMY_RADIUS):
Τυπώνω("Τέλος παιχνιδιού!")

defείναι_σύγκρουση(εαυτός, x1, y1, x2, y2, ακτίνα 1, ακτίνα 2):
απόσταση_τετράγωνο = (x1 - x2) ** 2 + (y1 - y2) ** 2
radius_sum_squared = (ακτίνα1 + ακτίνα 2) ** 2
ΕΠΙΣΤΡΟΦΗ απόσταση_τετράγωνο <= ακτίνα_άθροισμα_τετράγωνο

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

Προσθήκη εχθρικών σφαίρων

Για να δημιουργήσετε έναν εχθρό που εκτοξεύει σφαίρες, δημιουργήστε ένα Σφαίρα τάξη και μια λίστα για να παρακολουθείτε τις ενεργές κουκκίδες. Ο εχθρός θα δημιουργεί περιοδικά μια νέα σφαίρα και θα ενημερώνει τη θέση του. Δημιουργήστε ένα νέο αρχείο με όνομα bullets.py και προσθέστε τον κωδικό με τις παρακάτω ενημερώσεις:

# Προσθήκη στην κατηγορία GameWindow

τάξηΣφαίρα:
def__μέσα σε αυτό__(εαυτός, x, y, ακτίνα, ταχύτητα):
αυτο.χ = χ
αυτο.υ = υ
αυτο.ακτίνα = ακτίνα
αυτο.ταχύτητα = ταχύτητα

defεκσυγχρονίζω(εαυτός):
αυτο.υ -= εαυτός.ταχύτητα

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
# ...

def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
# ...

# Ιδιότητες εχθρού
self.bullets = []
αυτο.κουκκίδα_ακτίνα = 5
αυτο.bullet_speed = 3
αυτο.bullet_cooldown = 60# Αριθμός πλαισίων μεταξύ των βολών
αυτο.bullet_timer = 0

defon_draw(εαυτός):
# ...
Για σφαίρα σε self.bullets:
arcade.draw_circle_filled (bullet.x, bullet.y,
self.bullet_radius, arcade.color. ΜΑΥΡΟΣ)

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

self.bullet_timer += 1
αν self.bullet_timer >= self.bullet_cooldown:
self.bullets.append (κουκκίδα (self.enemy_x, self.enemy_y - self.enemy_radius,
self.bullet_radius, self.bullet_speed))
αυτο.bullet_timer = 0

Για σφαίρα σε self.bullets:
bullet.update()
αν self.is_collision (self.player_x, self.player_y, self.enemy_x,
self.enemy_y, PLAYER_RADIUS, ENEMY_RADIUS):
Τυπώνω("Τέλος παιχνιδιού!")

defείναι_σύγκρουση(εαυτός, x1, y1, x2, y2, ακτίνα 1, ακτίνα 2):
απόσταση_τετράγωνο = (x1 - x2) ** 2 + (y1 - y2) ** 2
radius_sum_squared = (ακτίνα1 + ακτίνα 2) ** 2
ΕΠΙΣΤΡΟΦΗ απόσταση_τετράγωνο <= ακτίνα_άθροισμα_τετράγωνο

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

Προσθήκη βαθμών υγείας για εχθρούς

Σε πολλά παιχνίδια, οι εχθροί μπορούν να έχουν πόντους υγείας (HP), επιτρέποντάς τους να διατηρήσουν πολλά χτυπήματα πριν νικηθούν. Η προσθήκη σημείων υγείας στους εχθρούς μπορεί να εισάγει στρατηγικά στοιχεία παιχνιδιού και να προσφέρει μια αίσθηση προόδου και πρόκλησης. Δημιουργήστε ένα νέο αρχείο με όνομα heath-point.py και προσθέστε τον κωδικό με τις παρακάτω ενημερώσεις:

# Διαστάσεις παραθύρου
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600

# Χαρακτηριστικά παίκτη
PLAYER_RADIUS = 25
PLAYER_SPEED = 5

# Ιδιότητες εχθρού
ΕΧΘΡΟΣ_ΑΚΤΙΝΑ = 20
ΕΝΗΜΟΣ_ΥΓΕΙΑ = 100

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός, πλάτος, ύψος):
super().__init__(πλάτος, ύψος)
arcade.set_background_color (arcade.color. ΑΣΠΡΟ)
self.player_x = πλάτος // 2
self.player_y = ύψος // 2
self.enemy_x = πλάτος // 2
self.enmy_y = ύψος - PLAYER_RADIUS
self.enmy_health = ENEMY_HEALTH
εκτύπωση (self.enemy_health)
defon_draw(εαυτός):
arcade.start_render()
arcade.draw_circle_filled (self.player_x,
self.player_y,
PLAYER_RADIUS,
στοά.χρώμα. ΜΠΛΕ)
αν εαυτός.εχθρός_υγεία > 0:
arcade.draw_circle_filled (self.enemy_x,
self.enmy_y,
ENEMY_RADIUS,
στοά.χρώμα. ΤΟ ΚΟΚΚΙΝΟ)

defεκσυγχρονίζω(self, delta_time):
αν self.is_collision (self.player_x, self.player_y,
self.enmy_x, self.enmy_y,
PLAYER_RADIUS, ENEMY_RADIUS):
εαυτός.εχθρός_υγεία -= 10
εκτύπωση (self.enemy_health)

ο ENEMY_HEALTH σταθερά έχει τιμή 100 για να αντιπροσωπεύει τους αρχικούς πόντους υγείας του εχθρού. Όταν ο παίκτης συγκρούεται με τον εχθρό, μπορείτε να αφαιρέσετε κάποιους πόντους από την υγεία του εχθρού. Για να εμφανίσετε την ενημερωμένη τιμή υγείας, μπορείτε να εκτυπώσετε ένα αντικείμενο κειμένου self.health_text που δείχνει την τρέχουσα υγεία του εχθρού.

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

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

Βέλτιστες πρακτικές για τη δημιουργία εχθρών

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

Διαφορετικές ιδιότητες

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

Μοναδικές Συμπεριφορές

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

Σημεία υγείας (HP)

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

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

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