Cuando termina
Parte de la sección Sensación de juego del Journey de Godot de Coddy. Lección 22 de 23.
Después de un salto, el robot se queda quieto, porque "hop" no se repite en bucle. Debería volver a balancearse.
Un AnimationPlayer envía la señal animation_finished cuando una animación que no se repite en bucle llega al final. La señal lleva el nombre de la animación, así que una función puede gestionar todas las animaciones.
func _ready():
$AnimationPlayer.animation_finished.connect(_on_animation_finished)
func _on_animation_finished(anim_name):
if anim_name == "hop":
print("Landed")La conectas del mismo modo que body_entered. Una animación en bucle nunca termina, así que "bob" nunca la envía.
Desafío
FácilConecta la señal animation_finished de AnimationPlayer a una función _on_animation_finished(anim_name). Cuando la animación que haya terminado sea "hop", reproduce "bob" de nuevo.
Pruébalo tú mismo
extends Node2D
func _ready():
$AnimationPlayer.play("bob")
func _process(delta):
if Input.is_action_just_pressed("jump"):
$AnimationPlayer.play("hop")
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Sensación de juego
Practica por tu cuenta: Playground de Godot