Я разрабатываю 2D-игру с очень большими уровнями, в которых две команды (около 200 объектов на команду) сражаются друг с другом на самолетах, танках, турелях и т. д. Ожидается, что каждый объект, стреляющий пулями в своего врага, будет иметь большое количество объектов в один момент. Какой алгоритм обнаружения столкновений я мог бы использовать для поддержки столкновений для огромного количества сущностей? Объекты представляют собой простые фигуры (прямоугольники и круги). Будет ли достаточно грубой силы или разбить уровень на сетку?
Эффективное обнаружение столкновений с несколькими объектами одновременно
comment
Вы можете использовать пул для пуль, чтобы не выделять память каждый раз, когда вы стреляете, а также для коллизии вы можете использовать и API для этого, или вы хотите сделать это вручную?
- person DGomez   schedule 05.06.2013
comment
почему бы не использовать физический движок, например box2d?
- person Bryan Chen   schedule 05.06.2013
Ответы (1)
Не используйте метод грубой силы. У вас очень скоро возникнут проблемы с производительностью. На эту тему есть много работ и статей.
Но если вы действительно не хотите реализовывать свое собственное решение, выберите существующий движок коллизии/физики, который может решить эту проблему за вас. Вы делаете 2D-игру, тогда очевидным выбором будет Box2D, который портирован на многие платформы и используется во многих играх. движки и игры (например, Angry Birds и ее клоны). Также этот вопрос, вероятно, лучше подходит для сайта разработки игр, поскольку на самом деле вы не решаете какую-либо конкретную проблему программирования.
person
MartinTeeVarga
schedule
05.06.2013