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.
Aufgabe
EinfachVerbinde 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")
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