4

我知道它违反了物理定律,但尽管在游戏中瞬间改变身体的位置和方向通常有实际原因,但大多数物理模拟库都不允许这样做,所以 Bullet Physics 也不会。

因此,我将不胜感激对此的任何建议或评论。

顺便说一句,我想到了需要那些即时变化的瞬移。还有一个更奇特的应用可能是惯性——例如,当倾斜或旋转带有加速度计的便携式设备时,物体相对于用户来说看起来是静态的。增强现实不应该听起来俗气。

4

1 回答 1

2

假设我正确理解了您的问题,我建议您查看BulletDynamics/Character/btCharacterControllerInterface.h和/或BulletDynamics/Dynamics/btActionInterface.h. 在实现角色移动时,通常想要“改变规则”——例如,实现传送,可以使用void warp(const btVector3& origin)from 的方法btCharacterControllerInterface

就个人而言,我很幸运直接继承自btActionInterface,存储了一个指向 a 的指针btGhostObject,我可以从那里更新并实现我的逻辑,但是 YMMV.

注意:如果你只是想改变位置和方向,你应该可以void setWorldTransform(const btTransform& worldTrans)调用btRigidBody.

于 2012-11-23T19:25:50.910 回答