Когда она завершится
Часть раздела Ощущения от игры путешествия по Godot на Coddy. Урок 22 из 23.
После прыжка робот стоит неподвижно, потому что "hop" не зацикливается. Он должен вернуться к покачиванию.
AnimationPlayer отправляет сигнал animation_finished, когда не зацикленная анимация достигает конца. Сигнал содержит имя анимации, поэтому одна функция может обрабатывать все анимации.
func _ready():
$AnimationPlayer.animation_finished.connect(_on_animation_finished)
func _on_animation_finished(anim_name):
if anim_name == "hop":
print("Landed")Подключить его можно так же, как и body_entered. Зацикленная анимация никогда не заканчивается, поэтому "bob" никогда его не отправляет.
Задание
ЛегкоПодключи сигнал animation_finished узла AnimationPlayer к функции _on_animation_finished(anim_name). Когда завершается анимация "hop", снова запусти "bob".
Попробуйте сами
extends Node2D
func _ready():
$AnimationPlayer.play("bob")
func _process(delta):
if Input.is_action_just_pressed("jump"):
$AnimationPlayer.play("hop")
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Ощущения от игры
Потренируйтесь самостоятельно: Песочница Godot