Menu
CoddyTech

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.

challenge icon

Sfida

Facile

Fai oscillare di nuovo il robot dopo un salto.

  1. In _ready(), collega $AnimationPlayer.animation_finished a _on_animation_finished.
  2. Scrivi _on_animation_finished(anim_name): quando anim_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