Quand elle se termine
Fait partie de la section Sensations de jeu du Journey Godot de Coddy. Leçon 22 sur 23.
Après un saut, le robot reste immobile, car "hop" ne boucle pas. Il devrait recommencer à se balancer.
Un AnimationPlayer envoie le signal animation_finished lorsqu’une animation qui ne boucle pas atteint sa fin. Le signal contient le nom de l’animation, ce qui permet à une seule fonction de gérer chaque animation.
func _ready():
$AnimationPlayer.animation_finished.connect(_on_animation_finished)
func _on_animation_finished(anim_name):
if anim_name == "hop":
print("Landed")Tu le connectes de la même façon que body_entered. Une animation en boucle ne se termine jamais, donc "bob" ne l’envoie jamais.
Défi
FacileFais à nouveau osciller le robot après un bond.
- Dans
_ready(), connecte$AnimationPlayer.animation_finishedà_on_animation_finished. - Écris
_on_animation_finished(anim_name): lorsqueanim_namevaut"hop", joue"bob".
Appuie sur « Jouer », puis sur Espace : après le bond, le robot oscille à nouveau. Ensuite, clique sur « Vérifier ».
Essayez vous-même
extends Node2D
func _ready():
$AnimationPlayer.play("bob")
func _process(delta):
if Input.is_action_just_pressed("jump"):
$AnimationPlayer.play("hop")
Toutes les leçons de Sensations de jeu
Entraînez-vous par vous-même : Playground Godot