Сообщение от MoKa
Значит у тебя двух мерный массив - карта проходимости.
Тогда зачем таймер? Если можно просто двигать его, и проверять в карте проходимости: стоит ли по направлению объект, если да, то поворачивать, тут стадия бота с "Идти", меняется на "Поворачивать "+тут нужно проверять по карте проходимости, если справа пусто то "90", если слева пусто "-90", если и там и там пусто, то или то или другое, а если занято, то 180 или -180, и параметр, в который запишешь начальный градус перед поворотом, он будет делиться на 90, дальше в цикле, выбираем режим поворота, и соответственно, положительное\отрицательное, в ту сторону и крутим, и проверяем на разницу текущего градуса и начального перед началом поворота, если она (разница), будет больше\меньше (зависит положительное или отрицательное), то поворачивать его опять только на тот же градус (малоли погрешность), и переходить в режим "Двигать".
Надеюсь система понятна? 
|
Понятно) я так хотел еще полгода назад сделать. Дело в том что у меня с массивом так:
Local obj_x = Int((EntityX (obj)/10))
Local obj_z = Int ((EntityZ (obj)/10))
Округление)
И получается, что когда ИИ (или даже игрок) зайдет большей половиной на клетку, то происходит проверка и он останавливается на полпути ИБО дальше не идет так как там якобы "препядствие". Для этого я установил таймер. Когда срабатывает "якобы препядствие" я отсчитываю еще 10 и получаю что ИИ упирается в стенку