можно ли как-то определить окончание анимации в gdScript в Godot'e?
Нужно поставить условие, чтобы после окончания анимации, вылетала "пуля". Существует ли какой-то метод, определяющий конец? Или как можно записать программно? Я знаю, что вместо метода is_action_pressed можно использовать is_action_just_pressed, но тогда вовсе анимация не проигрывается Код:
func atack():
animation.play('atack')
var bul = bullet.instantiate()
bul.position = $Marker2D.global_position
get_parent().add_child(bul)
if Input.is_action_pressed("enter"):
atack()
velocity.x = move_toward(velocity.x, 0, speed)
Ответы (1 шт):
Да, можно. Для этого в узле анимации зайдите в настройку Node, там найдите сигнал animation_finished, подключите его к узлу, в котором у вас написан код выше и у вас появится функция, которая будет срабатывать после завершения анимации. Дальше можете сделать что душе угодно, например, при атаке ставить булеву-переменную Attacked (создать в скрипте конечно) в значение true, а после в функции animation_finished, поставить эту переменную в значении false. Дальше с помощью оператора if делать проверку при нажатии на клавишу атаки. Если Attacked == false делайте ваш скрипт, иначе pass или можете не добавлять блок else