Обнаружение столкновений с картой с несколькими разрешениями - PullRequest
2 голосов
/ 18 декабря 2011

У меня может быть проблема с представлением лучшего решения проблемы, связанной с обнаружением столкновений.Я пишу 2D нисходящую игру на Java с множеством объектов, которые могут столкнуться.Я планирую использовать этот подход для создания карты с множественным разрешением, с конкретными объектами в определенных разрешениях квадратов карты, чтобы я мог обойти проблему O (n²) и сузить объекты в области, которая может сталкиваться.Я должен держать список всех объектов, которые находятся в каждом квадрате карты.Однако, поскольку многие или иногда все объекты движутся, я должен постоянно обновлять эти списки.Я предполагаю, что использование каждого цикла рендеринга объекта для обновления списков квадратов карты будет довольно трудоемким и, вероятно, разрушит преимущество, которое я получил, используя карты с множественным разрешением, чтобы сузить число объектов, которые могут сталкиваться с другим объектом.

Мой вопрос сейчас, как отслеживать все объекты и заполнять их в соответствующие квадраты карты?Есть ли простой способ, или я должен выбрать другую концепцию для обнаружения столкновений?

Я мог бы забыть некоторые детали, если есть какая-то дополнительная информация, которую я должен предоставить, пожалуйста, ответьте.

Заранее спасибо С уважением

1 Ответ

0 голосов
/ 18 декабря 2011

Я предполагаю, что у вас есть неподвижные объекты и движущиеся объекты.статические объекты должны регистрироваться только один раз на карте с множественным разрешением.Движущиеся объекты должны только проверить, принадлежат ли они теперь другому квадрату, если они действительно перемещены.

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

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

...