Как отключить перевод при столкновении?
Что я хочу сделать
Я хочу, чтобы мой игрок / персонаж двигался одновременно с твердым телом.
Когда мой персонаж сталкивается с другим РБ, другой РБ должен двигаться, но не мой персонаж.
Что я хочу знать
Можно ли деактивировать трансляцию конкретного твердого тела при столкновениях? Если да, то как?
1 ответ
Твердые тела в кинематическом состоянии не перемещаются при столкновении. В любом случае они все еще сталкиваются, и поэтому другие объекты перемещаются при столкновении.
Вы можете установить кинематическое состояние следующим образом:
body.setCollisionFlags(body.getCollisionFlags() | CollisionFlags.CF_KINEMATIC_OBJECT);
Но имейте в виду, что никакая физика в вашем мире не будет перемещать ваше тело, и вы должны вручную установить его положение с помощью MotionState.
(Или, если вы хотите переместить игрока, добавляя силы, вы можете попытаться обойти, установив игроку очень большую массу и используя соответствующие силы для движения, чтобы минимизировать воздействие на вашего игрока. Я не знаю ни одного чистого решение для этого.)