Quando termina
Fa parte della sezione Sensazioni di gioco del percorso Godot di Coddy. Lezione 22 di 23.
Dopo un saltello, il robot resta fermo, perché "hop" non si ripete in ciclo. Dovrebbe tornare a dondolare.
Un AnimationPlayer invia il segnale animation_finished quando un'animazione che non si ripete in ciclo raggiunge la fine. Il segnale contiene il nome dell'animazione, quindi una funzione può gestire ogni animazione.
func _ready():
$AnimationPlayer.animation_finished.connect(_on_animation_finished)
func _on_animation_finished(anim_name):
if anim_name == "hop":
print("Landed")Lo colleghi nello stesso modo di body_entered. Un'animazione in ciclo non termina mai, quindi "bob" non lo invia mai.
Sfida
FacileCollega il segnale animation_finished di AnimationPlayer alla funzione _on_animation_finished(anim_name). Quando l’animazione terminata è "hop", riproduci di nuovo "bob".
Provalo tu
extends Node2D
func _ready():
$AnimationPlayer.play("bob")
func _process(delta):
if Input.is_action_just_pressed("jump"):
$AnimationPlayer.play("hop")
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Sensazioni di gioco
Esercitati da solo: Playground Godot