Я работаю над 2D-игрой с огромным количеством динамических объектов. Ради удовольствия, давайте назовем их солдатами, и предположим, что из них 50000 (которые я просто случайно придумал, это может быть намного больше или намного меньше :)).2D-игра: быстрый (устный) способ найти x ближайших сущностей для другого объекта - огромное количество сущностей, очень динамичных
Все эти солдаты перемещают каждый кадр в соответствии с правилами - думайте о боях/флокеровании/рулевом управлении. Для каждого солдата, чтобы обновить его движение, мне нужны солдаты X, которые ближе всего к той, которую я обрабатываю.
Какова была бы лучшая пространственная иерархия для их хранения, чтобы облегчить такие вычисления без излишних издержек? (Все объекты обновляются/перемещаются в каждом кадре, поэтому очень хорошо обрабатывают динамические объекты).
не забудьте закрыть вопрос, выбрав наиболее полезный ответ. – Toad
Вот [хороший алгоритм] (http://wapedia.mobi/en/Flocking_ (поведение)), аналогично предложению reinier. –
[этот блог] (http://blogs.msdn.com/devdev/) имеет [хорошую запись одного решения] (http://blogs.msdn.com/devdev/archive/2007/06/07/k -nearest-neighbour-spaces-search.aspx) (а также ряд других хороших артикулов) – BCS