Menu
CoddyTech

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.

challenge icon

Desafío

Fácil

Haz que el robot vuelva a balancearse después de un salto.

  1. En _ready(), conecta $AnimationPlayer.animation_finished con _on_animation_finished.
  2. Escribe _on_animation_finished(anim_name): cuando anim_name sea "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