Menu
CoddyTech

Wenn es fertig ist

Teil des Abschnitts Spielgefühl der Godot-Journey von Coddy. Lektion 22 von 23.

Nach einem Hüpfer bleibt der Roboter stehen, weil "hop" nicht in einer Schleife läuft. Er sollte wieder wippen.

Ein AnimationPlayer sendet das Signal animation_finished, wenn eine Animation, die nicht in einer Schleife läuft, ihr Ende erreicht. Das Signal enthält den Namen der Animation, sodass eine Funktion alle Animationen behandeln kann.

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

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

Du verbindest es auf dieselbe Weise wie body_entered. Eine Animation in einer Schleife endet nie, daher sendet "bob" das Signal nie.

challenge icon

Aufgabe

Einfach

Verbinde das Signal animation_finished des AnimationPlayer mit einer Funktion _on_animation_finished(anim_name). Wenn die beendete Animation "hop" ist, spiele erneut "bob" ab.

Probier es selbst

extends Node2D

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

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

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Spielgefühl

Übe selbstständig: Godot-Playground