Développez un environnement de jeu immersif pour vos jeux Godot avec des animations captivantes.
Dans le développement de jeux, les animations jouent un rôle crucial dans la création d'une expérience engageante et immersive pour les joueurs. L'ajout d'animations 2D à votre jeu Godot peut donner vie à vos personnages et environnements, les rendant plus attrayants visuellement et interactifs.
Heureusement, Godot fournit des outils et des fonctionnalités puissants pour créer et contrôler facilement des animations 2D.
Configurer le jeu Godot
Pour commencer, configurez une scène de jeu 2D de base dans le moteur de jeu Godot. Créez une nouvelle scène et ajoutez un KinematicBody2D nœud en tant que personnage du joueur. À l'intérieur de KinematicBody2D, ajouter un CollisionShape2D avec une forme de rectangle qui représente les limites de collision du joueur.
Le code utilisé dans cet article est disponible dans ce Référentiel GitHub et est libre d'utilisation sous la licence MIT.
De plus, ajoutez un
Sprite animé node pour gérer les animations du joueur. De plus, assurez-vous de mapper les actions d'entrée suivantes dans votre Carte d'entrée:Ensuite, écrivez le code GDScript pour contrôler le mouvement du joueur. Joignez le script suivant au KinematicBody2D nœud:
étend KinematicBody2Dconst SPEED = 200func _physics_process (delta): var vitesse = Vector2.ZERO si Input.is_action_pressed("move_left"): Velocity.x -= SPEED si Input.is_action_pressed("move_right"): Velocity.x += SPEED if Input.is_action_pressed("Move_up"): Velocity.y -= SPEED if Input.is_action_pressed("Move_down"): Velocity.y += SPEED Velocity = move_and_slide (vitesse)
Ce script définit une vitesse constante pour le joueur et lui permet de se déplacer vers la gauche, la droite, le haut et le bas à l'aide des touches fléchées ou de WASD.
Ajout de SpriteSheet dans AnimatedSprite
Maintenant, configurez le Sprite animé utiliser une feuille de sprites pour les animations. Sélectionnez le Sprite animé nœud et accédez au Cadres section dans l'onglet des propriétés du nœud. Ici, cliquez sur le Nouveaux SpriteFrames bouton.
Passez à la SpriteFrames onglet situé en bas de l'éditeur Godot. Dans le SpriteFrames onglet, cliquez sur le Nouvelle animation bouton. Créer des animations telles que marcher et inactif en ajoutant des images appropriées à chaque animation.
De plus, vous avez la possibilité de créer d'autres animations, telles que le tir, le saut et l'escalade pour un jeu de plateforme. Après cela, cliquez sur le Ajouter des cadres à partir de SpriteSheet pour extraire automatiquement des images individuelles de la feuille de sprites.
Contrôler les animations à l'aide de GDScript
Maintenant que vos animations sont configurées, vous pouvez les contrôler par programmation à l'aide de GDScript.
Jouer et arrêter l'animation
Contrôler la lecture des animations est essentiel pour offrir des expériences dynamiques et interactives dans votre jeu. Le Sprite animé node dans Godot propose des méthodes pour jouer et arrêter les animations selon votre logique de jeu.
Prolongez le KinematicBody2D nœud et gérer le contrôle de l'animation dans le _processus_physique fonction. Vous pouvez utiliser le play_animation et stop_animation entrées pour déclencher les actions d'animation correspondantes.
étend KinematicBody2Dfunc _physics_process (delta): # Joue l'animation si Input.is_action_just_pressed("play_animation"): $AnimatedSprite.play() # Arrête l'animation et réinitialise la première image si Input.is_action_just_pressed("stop_animation"): $AnimatedSprite.stop() $AnimatedSprite.frame = 0
En mappant les actions d'entrée appropriées, vous pouvez donner aux joueurs le contrôle de la lecture de l'animation dans votre jeu.
Par exemple, vous pouvez lier le play_animation action à une pression sur un bouton ou à un événement spécifique dans votre jeu, permettant au joueur de déclencher une séquence d'animation à un moment souhaité. De plus, vous pouvez trouver de la musique sans droit d'auteur jouer pendant que l'animation est en cours d'exécution.
De même, vous pouvez déclencher le stop_animation actions pour arrêter complètement l'animation.
En incorporant ces mécanismes de contrôle d'animation, vous pouvez ajouter de la profondeur et de l'interactivité aux animations de votre jeu, créant ainsi des expériences plus engageantes et immersives pour vos joueurs.
Faire pivoter l'animation
La rotation de l'animation peut ajouter un intérêt visuel et de la variété à votre jeu. Vous pouvez faire pivoter par programme le Sprite animé node pour changer l'orientation de l'animation. Vous pouvez appliquer la rotation en degrés à l'aide de la tourner() méthode.
extend KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("rotate_animation"): # Faire pivoter l'animation de 45 degrés dans le sens des aiguilles d'une montre $AnimatedSprite.rotate (deg2rad (45))
Lorsque vous appuyez sur les boutons associés au rotation_animation (vous pouvez définir cette action dans votre carte d'entrée), le tourner() méthode est appelée sur le Sprite animé nœud. Il fait pivoter le nœud de 45 degrés dans le sens des aiguilles d'une montre en utilisant deg2rad() pour convertir les degrés en radians.
Gardez à l'esprit qu'il appliquera une rotation à l'ensemble Sprite animé nœud, y compris toutes les images de l'animation. Par conséquent, si vous souhaitez faire pivoter uniquement des images spécifiques, vous devrez peut-être les diviser en plusieurs Sprite animé nœuds ou utiliser d'autres techniques telles que le retournement d'images individuelles.
Inverser l'animation
Retourner l'animation horizontalement ou verticalement peut être utile pour refléter les changements de direction des caractères. À Godot, le Sprite animé node fournit des propriétés pour contrôler le retournement.
Pour retourner l'animation horizontalement, définissez le flip_h propriété de la Sprite animé pour vrai. Cela reflétera l'animation le long de l'axe horizontal. De même, le réglage de la flip_v propriété à vrai reflétera l'animation le long de l'axe vertical.
étend KinematicBody2Dfunc _physics_process (delta): if Input.is_action_just_pressed("flip_animation"): $AnimatedSprite.flip_h = true # ou $AnimatedSprite.flip_v = true pour le retournement vertical
Si le joueur appuie sur la flip_animation action d'entrée puis définissez le flip_h propriété de la Sprite animé pour vrai. Cela retournera l'animation horizontalement.
Utilisation de signaux dans AnimatedSprite
En plus de contrôler les animations par programmation, Godot fournit un puissant système d'événements appelé signaux. Les signaux vous permettent de réagir à des événements ou à des changements spécifiques qui se produisent pendant l'exécution de votre jeu.
Dans le cas d Sprite animé, vous pouvez utiliser deux signaux importants: animation_finie() et frame_changed().
1. signal d'animation_fini()
Le animation_finie() signal est émis lorsque l'animation atteint la dernière image, soit lors d'une seule lecture, soit lors d'une boucle. Ce signal est utile lorsque vous souhaitez effectuer des actions ou déclencher des événements lorsqu'une animation se termine.
étend KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("animation_finished", self, "_on_animation_finished")func _on_animation_finished(): # Effectuer des actions ou déclencher des événements print("Animation terminé!") # Code supplémentaire ici...
Connectez le animation_finie() signal de la Sprite animé au _on_animation_finished() méthode dans le même script en utilisant la connecter() fonction.
Une fois l'animation terminée, vous pouvez exécuter une logique personnalisée ou déclencher d'autres fonctionnalités à l'aide de _on_animation_finished() méthode.
2. frame_changed() Signal
Le frame_changed() signal est émis chaque fois que l'image actuelle de l'animation change. Cela peut se produire lorsque l'animation est en cours de lecture ou lorsque vous modifiez l'image par programmation. Vous pouvez utiliser ce signal pour détecter les changements de trame et réagir en conséquence.
étend KinematicBody2Dfunc _ready(): $AnimatedSprite.connect("frame_changed", self, "_on_frame_changed")func _on_frame_changed(): # Effectuer des actions basées sur l'image actuelle var currentFrame = $AnimatedSprite.frame print("Current frame: ", currentFrame) # Code supplémentaire ici...
Connectez le frame_changed() signal de la Sprite animé au _on_frame_changed() méthode dans le même script. Lorsque le cadre change, vous pouvez accéder au cadre actuel à l'aide des _on_frame_changed() méthode et effectuer des actions ou une logique en fonction de la valeur de la trame.
En utilisant des signaux, vous pouvez réagir aux événements d'animation tels que l'achèvement ou les changements d'image et incorporer des comportements dynamiques ou déclencher des actions spécifiques dans votre jeu.
Rendre les jeux Godot plus engageants en utilisant des animations
L'ajout d'animations 2D à vos jeux Godot peut grandement améliorer l'expérience globale du joueur. Les animations donnent vie aux personnages, rendant leurs mouvements et actions plus attrayants visuellement. En incorporant des animations pour diverses actions telles que marcher, courir, attaquer et sauter, vous pouvez créer un environnement de jeu dynamique et immersif.
De plus, vous pouvez également utiliser des animations pour fournir un retour visuel au joueur. Ces commentaires contribuent à rendre le jeu plus attrayant et réactif, améliorant ainsi le sentiment de contrôle et d'implication du joueur.