2012-02-23 4 views
2

Я пытаюсь заблокировать движение мягкого тела до оси x. Я хочу иметь возможность двигаться влево и вправо, но фиксировать его в том же положении по оси z.Как установить положение мягкого тела в физике пули

Даже когда я применяю скорость вдоль оси х, она иногда может заставить тело двигаться назад по оси z из-за сопротивления воздуха и способа передвижения мягкого тела.

Чтобы справиться с этой проблемой, я хочу использовать обратный вызов tick, чтобы убедиться, что положение z мягкого тела всегда равно 0;

Это лучший способ обойти это, и если да, то как мне установить положение.

Я пробовал .transform() и .translate(), но не смог заставить его работать.

Спасибо.

ответ

4

Пробуйте использовать код setLinearFactor(). Он работает следующим образом:

body->setLinearFactor(btVector3(0.0, 1.0, 1.0)); 

Этот код блокирует любое перемещение по оси x. структура тела может быть жестким или мягким телом, а параметры btVector3: 1 для перемещения и 0 для блокировки любого типа движения. В вашем случае это будет выглядеть, как я сделал до