Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Случайное передвижение врага Godot

Лера Борисова Ученик (165), на голосовании 10 часов назад
Написала скрипт для врага, чтобы он каждую минуту выбирал случайное направление и шёл в его сторону, если не видит игрока (игрок не заходит в его зону видимости). Есть объект Timers, который поставлен на Autostart и Wait time на 60 секунд. Есть следующий код:

 speed = 100
func _physics_process(delta):

if chase == true:

var direction = (player.position - self.position).normalized()

velocity.x = direction.x * speed

velocity.y = direction.y * speed

else:

_on_normal_walk_timeout()

move_and_slide()

func _on_normal_walk_timeout():

velocity.x = randf()*2.0 - 1

velocity.y = randf()*2.0 - 1

velocity.normalized()

velocity *= speed

move_and_slide()

Однако данный код выбирает направление более каждой секунды и он выглядит как какой-то пьяница, пытающийся дойти до дома.
Голосование за лучший ответ
Александр Вис Мыслитель (7824) 1 месяц назад
Задержку задай
Лера БорисоваУченик (165) 1 месяц назад
Через await get_tree().create_timer(60).timeout? куда его поставить в коде или лучше сделать цикл, который будет повторяться каждую минуту? Просто я впервые работаю с Timers, поэтому не знаю как им правильно пользоваться
Александр Вис Мыслитель (7824) Лера Борисова, не знаю как в годоте, но обычно в программах время указывается в мили секундах, а не в секундах
Похожие вопросы