Menu
CoddyTech

Wenn es fertig ist

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

Nach einem Sprung bleibt der Roboter stehen, weil "hop" keine Schleife bildet. Er sollte wieder wippen.

Ein AnimationPlayer sendet das Signal animation_finished, wenn eine Animation, die keine Schleife bildet, ihr Ende erreicht. Das Signal enthält den Namen der Animation, sodass eine Funktion alle Animationen verarbeiten 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 genauso wie body_entered. Eine Animation in einer Schleife endet nie, also sendet "bob" das Signal nie.

challenge icon

Aufgabe

Einfach

Lass den Roboter nach einem Hüpfer wieder wippen.

  1. Verbinde in _ready() $AnimationPlayer.animation_finished mit _on_animation_finished.
  2. Schreibe _on_animation_finished(anim_name): Wenn anim_name gleich "hop" ist, spiele "bob" ab.

Drücke „Spielen“ und dann die Leertaste: Nach dem Hüpfer wippt der Roboter wieder. Klicke dann auf „Prüfen“.

Probier es selbst

extends Node2D

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

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

Alle Lektionen in Spielgefühl

Übe selbstständig: Godot-Playground