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 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.

challenge icon

Desafío

Fácil

Conecta 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")
quiz iconPonte a prueba

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