Box2d SetLinearVelocity не работает с гравитацией - PullRequest
1 голос
/ 17 февраля 2011

У меня есть тело (игрок) в моем мире box2d.

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

Я также пытался установить его скорость y равной гравитации (-30.0f), но тогда это делает его еще хуже.

Tyvm.

1 Ответ

1 голос
/ 17 февраля 2011

Это потому, что ваш игрок создан как динамическое тело. Таким образом, сила тяжести применяется к игроку на каждом этапе симуляции, заставляя его / ее изменять скорость.

Поставь своего игрока b2_kinematicBody - тогда никакие силы не будут применены к нему. Если вы по-прежнему хотите, чтобы игрок был динамичным, примените силу -playerMass*gravityVector каждый шаг (или установите параметр autoClearForces в b2World на false и примените силу один раз), чтобы удалить силу гравитации.

...