использование ящиков для столкновения - PullRequest
1 голос
/ 31 января 2010

Я пытаюсь использовать коробки для столкновения попаданий. Я хочу быть точным со столкновением, поэтому я думал о создании нескольких маленьких коробок и проверке столкновения таким образом. Это может быть глупая идея или умная. Кто знает, вот почему я спрашиваю вас, ребята. Если я так поступлю, это повлияет на производительность игры, даже если ящики невидимы и не будут нарисованы на сцене.

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

Ответы [ 2 ]

1 голос
/ 01 февраля 2010

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

Основная причина таких действий заключается в том, что существуют хорошие способы использования AABB для выполнения очень быстрых тестов на столкновение или, точнее, для очень быстрого исключения кандидатов для тестов на столкновение (когда AABB объектов не перекрываются). Сравнение каждого объекта с любым другим объектом требует N ^ 2 сравнений, но сохранение различных структур данных на основе AABB может позволить вам исключить кандидатов на столкновения за O (N) время (кроме времени, необходимого для обслуживания структур).

Чтобы посмотреть, как это делается, вам может понадобиться изучить физический движок, такой как box2Dflash , который внутренне отслеживает AABB для тестирования столкновений.

1 голос
/ 31 января 2010

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

...