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

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

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

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

Πριν ξεκινήσουμε, εγκαταστήστε το pip στη συσκευή σας και χρησιμοποιήστε αυτήν την εντολή για να εγκαταστήσετε το στοά μονάδα μέτρησης:

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

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

Ο κώδικας που χρησιμοποιείται σε αυτό το άρθρο είναι διαθέσιμος σε αυτό

instagram viewer
Αποθετήριο GitHub και είναι δωρεάν για χρήση βάσει της άδειας MIT.

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

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

SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
PLAYER_RADIUS = 20
PLATFORM_WIDTH = 200
PLATFORM_HEIGHT = 20
ΒΑΡΥΤΗΤΑ = 0.5
μπλε = στοά.χρώμα. ΜΠΛΕ
πράσινο = στοά.χρώμα. ΠΡΑΣΙΝΟΣ

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Μηχανική Άλματος")
self.player_x = SCREEN_WIDTH // 2
self.player_y = SCREEN_HEIGHT // 2
self.player_dy = 0
self.platform_x = SCREEN_WIDTH // 2
self.platform_y = SCREEN_HEIGHT // 4

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

arcade.draw_circle_filled (self.player_x, self.player_y,
PLAYER_RADIUS, μπλε)

arcade.draw_rectangle_filled (self.platform_x, self.platform_y,
PLATFORM_WIDTH, PLATFORM_HEIGHT, πράσινο)

defon_update(self, delta_time):
self.player_dy -= ΒΑΡΥΤΗΤΑ
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

αν self.player_y < dist:
self.player_y = διαστ
self.player_dy = 0

παιχνίδι = GameWindow()
arcade.run()

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

Προσθήκη μιας λειτουργίας απλού άλματος

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

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

defon_key_press(αυτο, κλειδί, τροποποιητές):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

αν κλειδί == arcade.key. ΠΑΝΩ και self.player_y == on_ground:
self.player_dy = 10

defon_update(self, delta_time):
self.player_dy -= ΒΑΡΥΤΗΤΑ
self.player_y += self.player_dy
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

αν self.player_y < dist:
self.player_y = διαστ
self.player_dy = 0
self.jump_count = 0

Προσθήκη δυνατότητας διπλού άλματος

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

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

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός):
self.jump_count = 0# Παρακολουθήστε τον αριθμό των αλμάτων

defon_key_press(αυτο, κλειδί, τροποποιητές):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

αν κλειδί == arcade.key. ΠΑΝΩ:
αν self.player_y == on_ground ή self.jump_count < 2:
self.player_dy = 10
self.jump_count += 1

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

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

Εφαρμογή μεταβλητού ύψους άλματος

Επιτρέποντας στον παίκτη να ελέγχει το ύψος των αλμάτων του με βάση τη διάρκεια που κρατά το κουμπί άλματος, μπορεί να προσθέσει περισσότερο έλεγχο και στρατηγική στο παιχνίδι. Ακολουθεί ένα παράδειγμα για το πώς μπορείτε να εφαρμόσετε μεταβλητό ύψος άλματος. Δημιουργήστε ένα νέο αρχείο με όνομα variable-jump.py και τον κωδικό με τις παρακάτω ενημερώσεις:

ΒΑΡΥΤΗΤΑ = 0.5
JUMP_POWER_INCREMENT = 0.2
MAX_JUMP_POWER = 100

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Μηχανική Άλματος")
αυτο.άλμα_πιεσμένος = Ψευδής
αυτο.άλμα_δύναμη = 0

defon_key_press(αυτο, κλειδί, τροποποιητές):
on_ground = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

αν κλειδί == arcade.key. ΠΑΝΩ και self.player_y == on_ground:
αυτο.άλμα_πιεσμένος = Αληθής

defon_key_release(αυτο, κλειδί, τροποποιητές):
αν κλειδί == arcade.key. ΠΑΝΩ:
αυτο.άλμα_πιεσμένος = Ψευδής

defupdate_jump_power(εαυτός):
# Αυξήστε την ισχύ άλματος ενώ κρατάτε πατημένο το κουμπί άλματος
αν self.jump_pressed:
self.jump_power += JUMP_POWER_INCREMENT

αν self.jump_power > MAX_JUMP_POWER:
self.jump_power = MAX_JUMP_POWER
αλλού:
αν self.jump_power > 0:
self.jump_power -= 1

defon_update(self, delta_time):
self.player_dy -= ΒΑΡΥΤΗΤΑ
dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

αν self.player_y == διαστ και self.jump_power > 0:
self.player_dy = self.jump_power

self.player_y += self.player_dy
self.update_jump_power()

Εφαρμογή της λειτουργίας Air Dash

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

AIR_DASH_DISTANCE = 100
MAX_AIR_DASHES = 2

τάξηΠαράθυρο παιχνιδιού(στοά. Παράθυρο):
def__μέσα σε αυτό__(εαυτός):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "Μηχανική Άλματος")
αυτος.επί_εδάφους = Ψευδής
αυτο.αέρα_παύλες = 0
αυτο.μπορεί_αέρα_ταμπλό = Αληθής

defon_key_press(αυτο, κλειδί, τροποποιητές):
αν κλειδί == arcade.key. ΠΑΝΩ και self.on_ground:
self.player_dy = 10
ελιφ κλειδί == arcade.key. ΠΑΝΩ και \
self.air_dashes < MAX_AIR_DASHES και \
self.can_air_dash:
self.player_dx = AIR_DASH_DISTANCE
self.air_dashes += 1
αυτο.μπορεί_αέρα_ταμπλό = Ψευδής

defon_update(self, delta_time):
self.player_dy -= ΒΑΡΥΤΗΤΑ
self.player_y += self.player_dy

dist = PLAYER_RADIUS + self.platform_y + PLATFORM_HEIGHT / 2

αν self.player_y <= dist:
self.player_y = διαστ
self.player_dy = 0
αυτος.επί_εδάφους = Αληθής
αλλού:
αυτος.επί_εδάφους = Ψευδής

self.player_x += self.player_dx

αν self.player_x < PLAYER_RADIUS:
self.player_x = PLAYER_RADIUS
self.player_dx = 0
ελιφ self.player_x > SCREEN_WIDTH - PLAYER_RADIUS:
self.player_x = SCREEN_WIDTH - PLAYER_RADIUS
self.player_dx = 0

αν self.on_ground:
αυτο.αέρα_παύλες = 0
αυτο.μπορεί_αέρα_ταμπλό = Αληθής

Όταν εκτελείτε την παύλα αέρα, ο χαρακτήρας του παίκτη σας θα απομακρυνθεί πολύ από την πλατφόρμα:

Βέλτιστες πρακτικές για τη μηχανική άλματος

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

Ισορροπήστε το ύψος και τη διάρκεια του άλματος

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

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

Παρέχετε οπτική και ακουστική ανατροφοδότηση

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

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

Fine-Tune Collision Detection

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

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

Κάντε τα παιχνίδια πιο διασκεδαστικά με το Jumping Mechanics

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

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