Как отключить перевод при столкновении?

Что я хочу сделать

Я хочу, чтобы мой игрок / персонаж двигался одновременно с твердым телом.
Когда мой персонаж сталкивается с другим РБ, другой РБ должен двигаться, но не мой персонаж.

Что я хочу знать

Можно ли деактивировать трансляцию конкретного твердого тела при столкновениях? Если да, то как?

1 ответ

Твердые тела в кинематическом состоянии не перемещаются при столкновении. В любом случае они все еще сталкиваются, и поэтому другие объекты перемещаются при столкновении.

Вы можете установить кинематическое состояние следующим образом:

body.setCollisionFlags(body.getCollisionFlags() | CollisionFlags.CF_KINEMATIC_OBJECT); 

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

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

Другие вопросы по тегам