Quando termina
Fa parte della sezione Sensazioni di gioco del percorso Godot di Coddy. Lezione 22 di 23.
Dopo un salto, 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 allo stesso modo di body_entered. Un'animazione che si ripete in ciclo non finisce mai, quindi "bob" non lo invia mai.
Sfida
FacileFai oscillare di nuovo il robot dopo un salto.
- In
_ready(), collega$AnimationPlayer.animation_finisheda_on_animation_finished. - Scrivi
_on_animation_finished(anim_name): quandoanim_nameè"hop", riproduci"bob".
Premi «Gioca» e premi Spazio: dopo il salto il robot oscilla di nuovo. Poi premi «Verifica».
Provalo tu
extends Node2D
func _ready():
$AnimationPlayer.play("bob")
func _process(delta):
if Input.is_action_just_pressed("jump"):
$AnimationPlayer.play("hop")
Tutte le lezioni di Sensazioni di gioco
Esercitati da solo: Playground Godot