Как проверить наличие 2D-коллизии без проверки каждого объекта


Я действительно амбициозен и работаю над 2D-игрой Shoot ' em Up, в которой, надеюсь, будут сотни сущностей, бегающих вокруг.

Мне трудно представить себе, как пуля будет обнаруживать столкновение с объектом, не проверяя каждый объект на карте. Причина в том, что я чувствую, что если у меня есть четыре дюжины пуль на экране, каждая из которых проверяет столкновение с каждым объектом на карте, каждый цикл, я увижу некоторые довольно значительная потеря производительности.

Так как же лучше всего обнаруживать коллизии, не проверяя каждый отдельный объект?

Я могу справиться с алгоритмом столкновения, когда у меня есть два объекта, я просто не могу найти способ заставить эти два объекта видеть друг друга, не проверив сначала всех остальных.

Я работаю на Java и OpenGL с (скоро будут текстурированы) квадроциклами.

1 8

1 ответ:

Вы должны исследовать Квадро-деревья; они часто используются для эффективного 2D-поиска.