Η κίνηση του παίκτη παίζει καθοριστικό ρόλο στο να κάνει τα παιχνίδια Godot πιο ελκυστικά. Μάθετε πώς να το εφαρμόσετε.
Η εφαρμογή της κίνησης των παικτών είναι μια θεμελιώδης πτυχή της δημιουργίας ελκυστικών παιχνιδιών στο Godot Game Engine. Η κίνηση του παίκτη επιτρέπει στους χρήστες να ελέγχουν χαρακτήρες, να εξερευνούν κόσμους του παιχνιδιού και να αλληλεπιδρούν με διάφορα στοιχεία στο περιβάλλον του παιχνιδιού.
Ρύθμιση του παιχνιδιού Γκοντό
Για να ξεκινήσετε, δημιουργήστε ένα νέο έργο 2D στο η μηχανή παιχνιδιών Godot. Στη συνέχεια, ακολουθήστε αυτά τα βήματα για να προσθέσετε την κίνηση του παίκτη στο παιχνίδι σας
Δημιουργήστε μια νέα σκηνή κάνοντας δεξί κλικ στο Σύστημα αρχείων πίνακα και, στη συνέχεια, επιλέξτε Νέος φάκελος και ονομάζοντας το Σκηνές. μεσα στην Σκηνές φάκελο, κάντε δεξί κλικ και δημιουργήστε μια νέα δισδιάστατη σκηνή. Αποθηκεύστε το με ένα κατάλληλο όνομα, π.χ. Player.tscn.
Ο κώδικας που χρησιμοποιείται σε αυτό το άρθρο είναι διαθέσιμος σε αυτό Αποθετήριο GitHub και είναι δωρεάν για χρήση βάσει της άδειας MIT.
Πρόσθεσε ένα CharacterBody2D κόμβος στη σκηνή κάνοντας κλικ στο Προσθήκη κόμβου κουμπί και επιλέγοντας CharacterBody2D από τη βιβλιοθήκη κόμβων.
Με την CharacterBody2D επιλεγμένος κόμβος, κάντε κλικ στο Προσθήκη θυγατρικού κόμβου κουμπί για προσθήκη α CollisionShape2D. Προσαρμόστε το σχήμα του CollisionShape2D να ταιριάζει με τις διαστάσεις του παίκτη. Μπορείτε να χρησιμοποιήσετε ένα ορθογώνιο σχήμα για απλότητα.
Στη συνέχεια, προσθέστε ένα Sprite2D συστατικό στο CharacterBody2D κόμβο και επιλέξτε ένα κατάλληλο sprite για τον χαρακτήρα του παίκτη σας.
Προσθήκη κίνησης παίκτη με χρήση εισόδου πληκτρολογίου
Τώρα, μπορείτε να προσθέσετε κίνηση του παίκτη χρησιμοποιώντας την είσοδο πληκτρολογίου στο Player.gd γραφή.
Επεκτείνετε το CharacterBody2D κόμβο, ορίστε την ταχύτητα κίνησης και λάβετε την είσοδο από τα πλήκτρα βέλους (ui_left, ui_right, ui_up, ui_down). Υπολογίστε την ταχύτητα κίνησης με βάση την κατεύθυνση εισόδου, κανονικοποιήστε την και, στη συνέχεια, μετακινήστε τη συσκευή αναπαραγωγής χρησιμοποιώντας το κίνηση_και_σύγκρουση λειτουργία στο _φυσική_διαδικασία μέθοδος.
extends CharacterBody2D
var speed = 300
func _physics_process(delta):
var input_dir = Vector2.ZERO
if Input.is_action_pressed("ui_left"):
input_dir.x -= 1
if Input.is_action_pressed("ui_right"):
input_dir.x += 1
if Input.is_action_pressed("ui_up"):
input_dir.y -= 1
if Input.is_action_pressed("ui_down"):
input_dir.y += 1
velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)
Προσθήκη περιστροφής
Για να κάνετε τη συσκευή αναπαραγωγής να βλέπει προς την κατεύθυνση της κίνησης, μπορείτε να προσθέσετε περιστροφή στη συσκευή αναπαραγωγής σας. Ενημερώστε το Player.gd σενάριο ως εξής:
extends CharacterBody2D
@export var speed = 400
@export var rotation_speed = 1.5var rotation_direction = 0
func get_input():
rotation_direction = Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left")
velocity = transform.x * (Input.get_action_strength("ui_up") - Input.get_action_strength("ui_down")) * speed
func _physics_process(delta):
get_input()
rotation += rotation_direction * rotation_speed * delta
move_and_slide()
Ο παίκτης θα περιστραφεί προς την κατεύθυνση της κίνησης. Η ταχύτητα περιστροφής μπορεί να ρυθμιστεί χρησιμοποιώντας το Ταχύτητα περιστροφής μεταβλητός.
Προσθήκη κίνησης παίκτη με χρήση εισόδου ποντικιού
Τώρα, μπορείτε να εφαρμόσετε την κίνηση του παίκτη χρησιμοποιώντας την είσοδο του ποντικιού για να μετακινήσετε το πρόγραμμα αναπαραγωγής στη θέση του κλικ του ποντικιού ή να κάνετε τον παίκτη να κοιτάξει τον δείκτη του ποντικιού:
extends CharacterBody2D
@export var speed = 300
func _physics_process(delta):
if Input.is_action_just_pressed("click"):
var target_position = get_global_mouse_position()
var direction = (target_position - global_position).normalized()
velocity = direction * speed * delta
move_and_collide(velocity)
Σε αυτόν τον κωδικό, η συσκευή αναπαραγωγής θα μετακινηθεί προς τη θέση του κλικ του ποντικιού όποτε το Κάντε κλικ ενεργοποιείται η δράση. Η ταχύτητα του παίκτη μπορεί να ελεγχθεί χρησιμοποιώντας το Ταχύτητα μεταβλητός.
Επιπλέον, μπορείτε επίσης να εφαρμόσετε περιστροφή με βάση το ποντίκι ως εξής:
extends CharacterBody2D
func _physics_process(delta):
var mouse_position = get_global_mouse_position()
var target_direction = (mouse_position - global_position).angle()
rotation = target_direction
Σε αυτήν την έκδοση, το sprite του παίκτη θα βλέπει απευθείας τη θέση του δείκτη του ποντικιού.
Συμπεριλαμβανομένων πρόσθετων χαρακτηριστικών
Ενώ η βασική κίνηση του παίκτη είναι απαραίτητη για τα περισσότερα παιχνίδια, η προσθήκη πρόσθετων λειτουργιών μπορεί να ανεβάσει την εμπειρία του παίκτη σας στο επόμενο επίπεδο. Ακολουθούν μερικά συναρπαστικά χαρακτηριστικά που μπορείτε να εξετάσετε το ενδεχόμενο να εφαρμόσετε στο παιχνίδι σας για να βελτιώσετε την κίνηση των παικτών:
Πηδώντας
Εφαρμογή μηχανικής άλματος επιτρέπει στους παίκτες να πλοηγούνται στα εμπόδια, να φτάνουν σε υψηλότερες πλατφόρμες και να προσθέτουν ένα επιπλέον επίπεδο διαδραστικότητας στον κόσμο του παιχνιδιού. Μπορείτε να ελέγξετε το ύψος του άλματος και να προσθέσετε κινούμενα σχέδια για να το κάνετε οπτικά ελκυστικό.
Παύλα ή Σπριντ
Η ικανότητα παύλας επιτρέπει στον παίκτη να κινείται γρήγορα για μια σύντομη έκρηξη, η οποία μπορεί να είναι χρήσιμη για την αποφυγή των εχθρών ή τη διέλευση των δύσκολων περιοχών. Αυτή η δυνατότητα προσθέτει ένα δυναμικό στοιχείο στο παιχνίδι και ενισχύει την αίσθηση ελέγχου του παίκτη.
Ολίσθηση και αναρρίχηση τοίχου
Η εισαγωγή της μηχανικής ολίσθησης και αναρρίχησης τοίχου επιτρέπει στους παίκτες να αλληλεπιδρούν με κάθετες επιφάνειες. Οι παίκτες μπορούν να γλιστρήσουν κάτω από τοίχους, να εκτελέσουν άλματα στον τοίχο ή ακόμα και να κλιμακώσουν ορισμένα εμπόδια. Αυτή η δυνατότητα είναι ιδιαίτερα δημοφιλής στα παιχνίδια πλατφόρμας.
Μηχανική Πλατφόρμας
Για παιχνίδια πλατφόρμας, μπορείτε να ενσωματώσετε τη βαρύτητα, την επιτάχυνση και την επιβράδυνση για να δημιουργήσετε μια ομαλή και ρεαλιστική εμπειρία κίνησης. Η τελειοποίηση αυτών των μηχανισμών μπορεί να κάνει το παιχνίδι να αισθάνεται πιο κομψό και ευχάριστο.
Θυμηθείτε, το κλειδί για την επιτυχή εφαρμογή πρόσθετων λειτουργιών βρίσκεται στην εξισορρόπηση και την απρόσκοπτη ενσωμάτωσή τους στο παιχνίδι. Κάθε χαρακτηριστικό θα πρέπει να συμπληρώνει τους βασικούς μηχανισμούς κίνησης του παίκτη και να συμβάλλει στη συνολική εμπειρία παιχνιδιού.
Βέλτιστες πρακτικές για την προσθήκη κίνησης παικτών
Όταν πρόκειται για την εφαρμογή της κίνησης των παικτών στο παιχνίδι Godot, ακολουθώντας αυτές τις βέλτιστες πρακτικές όχι μόνο θα κάνει τον κώδικά σας καθαρότερο και πιο αποτελεσματικό, αλλά θα συμβάλει επίσης σε έναν καλύτερο παίκτη εμπειρία:
Ξεχωριστές ανησυχίες
Οργανώστε τη λογική κίνησης του προγράμματος αναπαραγωγής σε ξεχωριστές λειτουργίες ή σενάρια. Για παράδειγμα, δημιουργήστε ένα σενάριο για το χειρισμό της εισαγωγής του προγράμματος αναπαραγωγής, ένα άλλο για την κίνηση των χαρακτήρων και πιθανώς ένα ακόμη για το χειρισμό κινούμενων εικόνων.
Ο διαχωρισμός των ανησυχιών κάνει τον κώδικά σας πιο αρθρωτό και ευκολότερο στη συντήρηση, καθώς και προωθεί την καλύτερη συνεργασία μεταξύ των μελών της ομάδας.
Χρησιμοποιήστε το Delta Time
Κατά τον υπολογισμό της κίνησης, πολλαπλασιάζετε πάντα τις τιμές σας με το χρόνο δέλτα (δέλτα) για να εξασφαλίσετε ομαλή κίνηση σε διαφορετικούς ρυθμούς καρέ. Ο χρόνος Delta αντιπροσωπεύει το χρόνο που έχει περάσει από το τελευταίο καρέ και διασφαλίζει ότι η συσκευή αναπαραγωγής κινείται με σταθερή ταχύτητα, ανεξάρτητα από την απόδοση της συσκευής.
Περιορίστε την ταχύτητα κίνησης
Ρυθμίστε τις μέγιστες ταχύτητες κίνησης για τη συσκευή αναπαραγωγής σας για να αποφύγετε ακούσιες κινήσεις υψηλής ταχύτητας. Αυτός ο περιορισμός μπορεί να είναι χρήσιμος για την αποτροπή των παικτών από το να σπάσουν τη φυσική του παιχνιδιού ή να αντιμετωπίσουν προβλήματα με την ανίχνευση σύγκρουσης.
Εξετάστε τα επίπεδα φυσικής και τις μάσκες σύγκρουσης
Ο Godot σάς επιτρέπει να διαμορφώνετε επίπεδα σύγκρουσης και μάσκες για διαφορετικά αντικείμενα στο παιχνίδι σας. Η σωστή ρύθμιση αυτών των στρωμάτων και μασκών σάς επιτρέπει να ελέγχετε ποια αντικείμενα μπορούν να αλληλεπιδρούν μεταξύ τους κατά τη διάρκεια της κίνησης. Για παράδειγμα, μπορεί να θέλετε ο παίκτης να συγκρούεται με συμπαγή αντικείμενα αλλά να μην περνά μέσα από μη στερεά.
Προσθήκη οπτικών και ακουστικών σχολίων
Εφαρμόστε οπτικά εφέ και ηχητικά στοιχεία για να παρέχετε ανατροφοδότηση στους παίκτες κατά τη διάρκεια της κίνησης. Για παράδειγμα, η προσθήκη σωματιδίων σκόνης όταν η συσκευή αναπαραγωγής τρέχει ή ο ήχος των βημάτων μπορεί να ενισχύσει την αίσθηση της βύθισης και της εμπλοκής.
Κάνοντας τα παιχνίδια Γκοντό πιο αλληλένδετα με την κίνηση των παικτών
Οι ρευστοί και ανταποκρινόμενοι μηχανικοί κινήσεων μπορούν να βελτιώσουν σημαντικά τη συνολική εμπειρία του παίκτη. Είτε πρόκειται για εξερεύνηση ενός τεράστιου κόσμου, αποφυγή εχθρών ή επίλυση γρίφων, η ομαλή κίνηση του παίκτη ενισχύει τη βύθιση και κρατά τους παίκτες κολλητούς.
Εφαρμόζοντας την κίνηση του παίκτη χρησιμοποιώντας το GDScript και τον κόμβο CharacterBody2D, μπορείτε να δημιουργήσετε δυναμικές και ευχάριστες εμπειρίες παιχνιδιού. Η ικανότητα να κινούνται ελεύθερα και να αλληλεπιδρούν με τον κόσμο του παιχνιδιού ενδυναμώνει τους παίκτες και τους κάνει να αισθάνονται συνδεδεμένοι με το εικονικό περιβάλλον.