2016-12-25 5 views
4

Я создаю игру, используя java и box2D (из libgdx).Java и Box2D - Какое тело следует рассматривать как пулю?

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

enter image description here

Моего вопрос, так как объект является динамическими, и я хочу, чтобы убедиться, что столкновение между платформой красным корпус детектируется я должен установить оба тело в пулевые тела? Только красное тело? Или только платформа?

Примечания:

  • Красный тело падает на очень высокой скорости

  • Платформа не движется с высокой скоростью

Благодарим Вас и Рождеством !

+0

Я никогда не использовал (J) Box, но цитировал из руководства: * «В некоторые игровые сценарии вам нужны динамические тела для использования CCD. Например, вы можете снимать высокоскоростную пулю в стек динамической кирпичи. Без ПЗС пуля может пробиваться сквозь кирпичи ». * Это звучит точно так же, как и ваше дело. Итак, ** если ** это работает, и производительность в порядке, есть ли какая-то причина, чтобы * не * установить их оба на 'bullet'? – Marco13

ответ

0

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

По крайней мере, в CCD-коде CCD Box2D 2.3.2 (см. b2World::SolveTOI) все контакты для данного временного шага будут рассмотрены на предмет того, требуется ли для них обработка CCD. По существу, в CCD-процессе продолжаются контакты, имеющие корпус с включенным пули или имеющий нединамическое тело (статическое или кинематическое тело). Таким образом, чем меньше пулевых тел, тем быстрее этот способ может закончиться.

Как таковой, он менее оптимален (с алгоритмической точки зрения), чтобы включить режим пули как на красном теле, так и на корпусе платформы, хотя разница в производительности вряд ли будет заметна только с тремя нарисованными телами. И учитывая, что вас беспокоит только столкновение между красным телом и платформой, одного из которых является пуля, достаточно, чтобы их контакт продолжался для обработки CCD.

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

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