грубо говоря да, но это можно оптимизировать. деля плоскость на квадраты и в каждом квадрате будет содержаться данные о том какие тут обьекты находятся.
Или даже так, Грубо говоря 2 массива упорядоченных по расположению обьектов. первый массив по горизонтали второй по вертикале. и поиск по этому массиву будет молнеиносно быстрый. это называется индексация. Иными словами чтобы все обекты не проверять можно индексировать их расположение в массивах и всегда держать эти массивы упорядоченными по расположению обектов. Иными словами переупорядочивать их при перемещени обектов.
Но и это переупорядочивание можно оптимизировать.
Потом просто хочешь посмотреть пересекают ли какие то обьекты нужный тебе, смотришщь его координаты, потом берешь СРЕДНИЙ обьектт из упорядоченного по расположению массива остальных обьектов, и если этот средний элемент стоит левее то отсекаешь от исследования правую часть массива, потом берешь средний элемент левой части, и отсекаешь которая не подходит. и.т.д. Таким образом в 4-7 итераций ты находишь ближайшие обьекты которые рссположены около твоего, их то и тестируешь на пересечение. КЭП.
Я вообще ни одной игры не писал и даже незнаю как это делается, но просто логически думая советую это. Не знаю как там НА САМОМ ДЕЛЕ делается.
Последний раз редактировалось Maxmaxmахimus, 06.10.2012 в 17:41.
|