Gdy się zakończy
Część sekcji Dopracowanie rozgrywki ścieżki Godot w Coddy. Lekcja 22 z 23.
Po podskoku robot stoi nieruchomo, ponieważ "hop" nie jest zapętlona. Powinien wrócić do kołysania się.
AnimationPlayer wysyła sygnał animation_finished, gdy animacja, która nie jest zapętlona, dobiega końca. Sygnał zawiera nazwę animacji, więc jedna funkcja może obsługiwać każdą animację.
func _ready():
$AnimationPlayer.animation_finished.connect(_on_animation_finished)
func _on_animation_finished(anim_name):
if anim_name == "hop":
print("Landed")Podłączasz go tak samo jak body_entered. Zapętlona animacja nigdy się nie kończy, więc "bob" nigdy go nie wysyła.
Wyzwanie
ŁatwySpraw, by robot znów podskakiwał po podskoku.
- W
_ready()połącz$AnimationPlayer.animation_finishedz_on_animation_finished. - Napisz
_on_animation_finished(anim_name): gdyanim_namema wartość"hop", odtwórz"bob".
Naciśnij „Graj” i naciśnij Spację: po podskoku robot znów podskakuje. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
extends Node2D
func _ready():
$AnimationPlayer.play("bob")
func _process(delta):
if Input.is_action_just_pressed("jump"):
$AnimationPlayer.play("hop")
Wszystkie lekcje w sekcji Dopracowanie rozgrywki
Poćwicz samodzielnie: Edytor online Godot