在Bullet Physics中即时更改btRigidBody的位置/方向

时间:2012-11-21 18:11:28

标签: rotation position bulletphysics on-the-fly

我知道它违反了物理定律,但是虽然通常有实际的理由可以立即改变游戏中身体的位置和方向,但大多数物理模拟库都不允许这样做,所以Bullet Physics也不会。 / p>

所以,我很感激对此的任何建议或评论。

顺便说一下,脑海中传出需要瞬间变化的传送。此外,更奇特的应用可能是惯性 - 例如,当使用加速度计倾斜或旋转便携式设备时,对象看起来相对于用户是静态的。增强现实不应该听起来很俗气。

1 个答案:

答案 0 :(得分:2)

假设我正确理解您的问题,我建议您查看BulletDynamics/Character/btCharacterControllerInterface.h和/或BulletDynamics/Dynamics/btActionInterface.h。通常情况下,人们希望“弯曲规则”#34;例如,在实施角色移动时 - 例如,可以使用void warp(const btVector3& origin)中的btCharacterControllerInterface方法实现远程传输。

就个人而言,我直接从btActionInterface继承了最好的运气,存储了一个指向btGhostObject的指针,我可以从那里更新并实现我的逻辑,但YMMV。

注意:如果您 想要更改位置和方向,您应该可以调用void setWorldTransform(const btTransform& worldTrans) btRigidBody方法。