при половине за бугром ломает пиксиля. Зайди треню поставь противника за холмик боком. Сделай так что бы прицел целил ПИКСЕЛЬ корпуса. И постреляй раз 10 потом скажешь сколько попало. Потом сделай так что бы прицел целил башню. Потом скажешь сколько раз попало с результатом. Больше я отвечать тебе не буду хоть упишись уписись))
Не забываем, игра динамическая. Просто тупо танк в реальном бою стоять не будет. Сейчас алгоритм работает так. Если танк движется (скорость > 0, или крутит башней, корпусом > угла в angleReset), то точки пересчитываются, т.к. количество точек ограничено и после достижения заданного количества набор точек заканчивается иначе будет огромная нагрузка и лаги. Но когда танк противника проявляет активность, точки набираются заново и выявляется новая зона. Попробуй в своём примере с тренировкой не просто целить в неактивного противника, а попросить его немного ёрзать.
Параметр deltaRotatPoint
Он определяет, стоит ли переключаться на новый центр (голубая точка при включенном __visualPoints) и если расстояние от нового центра до старого места прицеливания больше указанного в этом параметре, то прицел переводится сразу, если нет, то проверяются остальные условия типа rangePercent и в зависимости от результат либо переводится, либо остаётся на старой позиции. Это необходимо, чтобы всегда было оптимальное место прицеливания. Сейчас в новой логике место прицеливания выбирается более корректно и более стабилизировано (меньше прыгает прицел)
ЗЫ
scanCycle не рекомендую больше 1, этого вполне достаточно
Если использовал ранее другие значения, то сейчас аналогично будет работать при значении раза в 3 - 5 меньше, т.к. уменьшилось время вызова алгоритма сканирования. И при старых значениях - например 10, будет лагать, как будто стоит 30-50
В общем, слишком большие значения scanCycle и pointsLimits вызывают заметные лаги