Когда она завершится
Часть раздела Ощущения от игры путешествия по 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" никогда его не отправляет.
Задание
ЛегкоЗаставь робота снова покачиваться после прыжка.
- В
_ready()подключи$AnimationPlayer.animation_finishedк_on_animation_finished. - Напиши
_on_animation_finished(anim_name): когдаanim_nameравен"hop", воспроизведи"bob".
Нажми «Играть» и нажми Space: после прыжка робот снова покачивается. Затем нажми «Проверить».
Попробуйте сами
extends Node2D
func _ready():
$AnimationPlayer.play("bob")
func _process(delta):
if Input.is_action_just_pressed("jump"):
$AnimationPlayer.play("hop")
Все уроки раздела Ощущения от игры
Потренируйтесь самостоятельно: Песочница Godot