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 emite la señal animation_finished cuando una animación que no se repite en bucle llega al final. La señal incluye el nombre de la animación, así que una función puede manejar 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 de la misma manera que body_entered. Una animación que se repite en bucle nunca termina, así que "bob" nunca la emite.
Desafío
FácilHaz que el robot vuelva a balancearse después de un salto.
- En
_ready(), conecta$AnimationPlayer.animation_finishedcon_on_animation_finished. - Escribe
_on_animation_finished(anim_name): cuandoanim_namesea"hop", reproduce"bob".
Presiona «Jugar» y la barra espaciadora: después del salto, el robot vuelve a balancearse. Luego, presiona «Comprobar».
Pruébalo tú mismo
extends Node2D
func _ready():
$AnimationPlayer.play("bob")
func _process(delta):
if Input.is_action_just_pressed("jump"):
$AnimationPlayer.play("hop")
Todas las lecciones de Sensación de juego
Practica por tu cuenta: Playground de Godot