Menu
CoddyTech

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.

challenge icon

Défi

Facile

Fais à nouveau osciller le robot après un bond.

  1. Dans _ready(), connecte $AnimationPlayer.animation_finished à _on_animation_finished.
  2. Écris _on_animation_finished(anim_name) : lorsque anim_name vaut "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