Le mouvement des joueurs joue un rôle crucial pour rendre les jeux Godot plus attrayants. Apprenez à le mettre en œuvre.

La mise en œuvre du mouvement des joueurs est un aspect fondamental de la création de jeux engageants dans le Godot Game Engine. Le mouvement du joueur permet aux utilisateurs de contrôler les personnages, d'explorer les mondes du jeu et d'interagir avec divers éléments de l'environnement du jeu.

Configurer le jeu Godot

Pour commencer, créez un nouveau projet 2D dans le moteur de jeu Godot. Ensuite, suivez ces étapes pour ajouter le mouvement des joueurs à votre jeu

Créez une nouvelle scène en cliquant avec le bouton droit sur Système de fichiers panneau, puis en sélectionnant Nouveau dossier et le nommer Scènes. À l'intérieur de Scènes dossier, faites un clic droit et créez une nouvelle scène 2D. Enregistrez-le sous un nom approprié, par exemple, Joueur.tscn.

Le code utilisé dans cet article est disponible dans ce Référentiel GitHub et est libre d'utilisation sous la licence MIT.

instagram viewer

Ajouter un PersonnageCorps2D nœud à la scène en cliquant sur le Ajouter un nœud bouton et en sélectionnant PersonnageCorps2D de la bibliothèque de nœuds.

Avec le PersonnageCorps2D nœud sélectionné, cliquez sur le Ajouter un nœud enfant bouton pour ajouter un CollisionShape2D. Ajustez la forme de la CollisionShape2D pour correspondre aux dimensions du joueur. Vous pouvez utiliser une forme rectangulaire pour plus de simplicité.

Ensuite, ajoutez un Sprite2D composant à la PersonnageCorps2D nœud et choisissez un sprite approprié pour votre personnage de joueur.

Ajout de mouvement du joueur à l'aide de la saisie au clavier

Maintenant, vous pouvez ajouter le mouvement du joueur en utilisant la saisie au clavier pour le Joueur.gd scénario.

Prolongez le PersonnageCorps2D nœud, définissez la vitesse de déplacement et obtenez l'entrée des touches fléchées (ui_left, ui_right, ui_up, ui_down). Calculez la vitesse de déplacement en fonction de la direction d'entrée, normalisez-la, puis déplacez le joueur à l'aide des move_and_collide fonction dans le _processus_physique méthode.

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)

Ajouter une rotation

Pour que le joueur soit face à la direction du mouvement, vous pouvez ajouter une rotation à votre joueur. Mettre à jour le Joueur.gd script comme suit :

extends CharacterBody2D

@export var speed = 400
@export var rotation_speed = 1.5

var 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()

Le joueur tournera dans le sens du mouvement. La vitesse de rotation peut être ajustée à l'aide de la vitesse de rotation variable.

Ajout de mouvement de joueur à l'aide de la souris

Maintenant, vous pouvez implémenter le mouvement du joueur en utilisant la souris pour déplacer le joueur à la position du clic de souris ou faire face au pointeur de la souris :

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)

Dans ce code, le joueur se déplacera vers la position du clic de souris chaque fois que le Cliquez sur action est déclenchée. La vitesse du joueur peut être contrôlée à l'aide du vitesse variable.

De plus, vous pouvez également implémenter la rotation basée sur la souris comme suit :

extends CharacterBody2D

func _physics_process(delta):
var mouse_position = get_global_mouse_position()
var target_direction = (mouse_position - global_position).angle()
rotation = target_direction

Dans cette version, le sprite du joueur sera directement face à la position du pointeur de la souris.

Inclure des fonctionnalités supplémentaires

Bien que le mouvement de base du joueur soit essentiel pour la plupart des jeux, l'ajout de fonctionnalités supplémentaires peut faire passer l'expérience de votre joueur au niveau supérieur. Voici quelques fonctionnalités intéressantes que vous pouvez envisager d'implémenter dans votre jeu pour améliorer le mouvement des joueurs :

Sauter

Mise en œuvre de la mécanique de saut permet aux joueurs de franchir des obstacles, d'atteindre des plates-formes plus élevées et d'ajouter une couche supplémentaire d'interactivité au monde du jeu. Vous pouvez contrôler la hauteur du saut et ajouter des animations pour le rendre visuellement attrayant.

Dash ou Sprint

Une capacité de tiret permet au joueur de se déplacer rapidement pendant une courte rafale, ce qui peut être utile pour échapper aux ennemis ou traverser des zones difficiles. Cette fonctionnalité ajoute un élément dynamique au gameplay et améliore le sentiment de contrôle du joueur.

Mur coulissant et escalade

L'introduction de mécanismes de glissement et d'escalade sur les murs permet aux joueurs d'interagir avec les surfaces verticales. Les joueurs peuvent glisser sur les murs, effectuer des sauts de mur ou même escalader certains obstacles. Cette fonctionnalité est particulièrement populaire dans les jeux de plateforme.

Mécanique de plate-forme

Pour les jeux de plateforme, vous pouvez intégrer la gravité, l'accélération et la décélération pour créer une expérience de mouvement fluide et réaliste. Le réglage fin de ces mécanismes peut rendre le jeu plus raffiné et plus agréable.

N'oubliez pas que la clé du succès de la mise en œuvre de fonctionnalités supplémentaires réside dans leur équilibre et leur intégration transparente dans le gameplay. Chaque fonctionnalité doit compléter les mécanismes de mouvement de base du joueur et contribuer à l'expérience de jeu globale.

Meilleures pratiques pour ajouter du mouvement de joueur

Lorsqu'il s'agit de mettre en œuvre le mouvement des joueurs dans votre jeu Godot, suivez ces meilleures pratiques rendra non seulement votre code plus propre et plus efficace, mais contribuera également à un meilleur lecteur expérience:

Préoccupations distinctes

Organisez la logique de mouvement de votre joueur en fonctions ou scripts distincts. Par exemple, créez un script pour gérer les entrées du joueur, un autre pour le mouvement des personnages et éventuellement un autre pour gérer les animations.

La séparation des préoccupations rend votre code plus modulaire et plus facile à maintenir, tout en favorisant une meilleure collaboration entre les membres de l'équipe.

Utiliser l'heure delta

Lors du calcul du mouvement, multipliez toujours vos valeurs par le temps delta (delta) pour assurer un mouvement fluide sur différentes fréquences d'images. Le temps delta représente le temps écoulé depuis la dernière image et garantit que le joueur se déplace à une vitesse constante, quelles que soient les performances de l'appareil.

Limiter la vitesse de déplacement

Définissez des vitesses de déplacement maximales pour votre joueur afin d'éviter les mouvements à grande vitesse involontaires. Cette limitation peut être utile pour empêcher les joueurs de casser la physique du jeu ou de rencontrer des problèmes de détection de collision.

Considérez les couches physiques et les masques de collision

Godot vous permet de configurer des calques de collision et des masques pour différents objets de votre jeu. Définir correctement ces calques et masques vous permet de contrôler quels objets peuvent interagir les uns avec les autres pendant le mouvement. Par exemple, vous pouvez souhaiter que le joueur entre en collision avec des objets solides mais ne passe pas à travers des objets non solides.

Ajouter des commentaires visuels et audio

Implémentez des effets visuels et des signaux sonores pour fournir une rétroaction aux joueurs pendant le mouvement. Par exemple, ajouter des particules de poussière lorsque le joueur court ou des bruits de pas peut améliorer le sentiment d'immersion et d'engagement.

Rendre les jeux Godot plus engageants avec le mouvement des joueurs

Des mécanismes de mouvement fluides et réactifs peuvent améliorer considérablement l'expérience globale du joueur. Qu'il s'agisse d'explorer un vaste monde, d'esquiver des ennemis ou de résoudre des énigmes, le mouvement fluide des joueurs améliore l'immersion et maintient les joueurs accrochés.

En implémentant le mouvement du joueur à l'aide de GDScript et du nœud CharacterBody2D, vous pouvez créer des expériences de jeu dynamiques et agréables. La possibilité de se déplacer librement et d'interagir avec le monde du jeu permet aux joueurs de se sentir connectés à l'environnement virtuel.