Ответ: Вопрос про наболевшее - коллизии.
Да, быстрее, я как-то проверял.
Теперь интересное: почему.
Процесс перебора + дистанс с точки зрения запущеного экзешника:
грузится двиг блитца.
Скрипт-двиг трейсит код, и натыкается на мейн-луп.
В нем находит переход на функцию вложенного перебора.
Запускает поиск внешнего элемента (пули) среди всех. (EACH)
Возвращает в ОЗУ все положенные данные из полей
Запускает поиск внутреннего элемента (танка)
Опять забивает ОЗУ
И только сейчас, имея на руках в памяти через к примеру bullet\entity и tank\entity он получает запрос на дистанс.
Как думаешь, быстро?
Теперь коллизии, которые происходят внутри самого движка, т.е. без гоняния туда-сюда скрипт-машины:
грузится двиг блитца.
Скрипт-двиг трейсит код, и натыкается на мейн-луп.
В нем находит переход на функцию вложенного перебора.
Запускает поиск внешнего элемента (пули) среди всех. (EACH)
Возвращает в ОЗУ все положенные данные из полей
Ловит запрос на коллизии с методом STOP. Начинает внутри своих данных руководствуясь группами коллизий (EntityType) перебор, проверяя по сути тот же Distance и... ничего не делая, кроме как останавливая объект, т.е. никакие доп. вычисления траектории обтекания и пр. не происходят!
А теперь вопрос на засыпку: на(забанено) мучать скрипт-машину блитца лишние n раз, да еще и вложенным перебором? (;
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|