Ilias, ну да не к каждому, но для этого движок создает древовидную структуру объектов и создает заранее различные списки (Списки живых игроков, техники и т д), поэтому он и делает это намного быстрее. Что бы ускорить ваш процесс нужно:
А) Если существуют точки не меняющие/редко меняющие свое положение, то не плохо бы всего лишь один раз выполнить нужные расчеты для них, а повторно их выполнять только при каком-либо изменении
Б) На начльном этапе сразу отсекать те точки, которые с высокой вероятностью не выполнят ваши условия (Например: точки находящиеся на разных концах Алтиса - наврятли выполнят ваше условие, или находящаяся в нескольких квадратах (100 на 100 метров) когда радиус необходимой зоны метров 10)
В) Так же не плохобы построить какое-либо дерево - если узел выше выполнил ваше условие, то и с большей вероятностью его выполнят и узлы находящие ниже от этого узла и наоборот (Очень эффективно если "зоны" могут включать в себя зоны по меньше)
Г) Какова цель проверки этих точек? (Например: если цель проверить нахождение объекта X неподалеку от каких-либо важных точек, то достаточно роверять это только если объект меняет свою позицию (А если стоит, то просто ждать изменений) ну и т д)
*Но тут еще нужно написать такой алгоритм, что бы ресурсы потраченые на эту оптимизацию, не превысили ресурсов потраченых при меньшем уровне оптимизации (Или вообще без нее)
Короче, ваш написанный выше код, может спокойно превратится в пару листов А4
Сообщение отредактировал vlad333000: 27 June 2016 - 02:59