Menu
CoddyTech
flag Pt iconPortuguêsdown icon

Quando terminar

Parte da seção Sensação de jogo do Journey de Godot da Coddy. Lição 22 de 23.

Depois de um salto, o robô fica parado, porque "hop" não fica em loop. Ele deve voltar a balançar.

Um AnimationPlayer envia o sinal animation_finished quando uma animação que não fica em loop chega ao fim. O sinal carrega o nome da animação, então uma função pode tratar de todas as animações.

func _ready():
	$AnimationPlayer.animation_finished.connect(_on_animation_finished)

func _on_animation_finished(anim_name):
	if anim_name == "hop":
		print("Landed")

Você conecta esse sinal da mesma forma que body_entered. Uma animação em loop nunca termina, então "bob" nunca o envia.

challenge icon

Desafio

Fácil

Conecte o sinal animation_finished do AnimationPlayer a uma função _on_animation_finished(anim_name). Quando a animação concluída for "hop", reproduza "bob" novamente.

Experimente você mesmo

extends Node2D

func _ready():
	$AnimationPlayer.play("bob")

func _process(delta):
	if Input.is_action_just_pressed("jump"):
		$AnimationPlayer.play("hop")
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Sensação de jogo

Pratique por conta própria: Playground de Godot