1

对于那些使用过子弹物理的人...

我阅读并运行了 hello world 示例http://www.bulletphysics.org/mediawiki-1.5.8/index.php/Hello_World,我很困惑下一步该去哪里。

hello world 教程包含一个 btStaticPlaneShape 和一个 btSphereShape,它们都是刚体。球体在静态平面上反弹的形状没有问题。

但是,当我在不同位置制作另一个球体时,Bullet 不会记录两个球体形状之间的碰撞,但它都会自动从 btStaticPlaneShape 反弹。什么样的内部魔法会导致 btStaticPlaneShape 自动反弹与之碰撞的对象?

Bullet 中是否有设置在碰撞后自动将物体相互弹开?或者您是否必须手动测试碰撞并自己施加合力?

谢谢。

4

1 回答 1

0

您可能无意中在 Bullet 认为它们不应该相互碰撞的状态下创建了球体。如果您主要使用默认值,并且只是在 Hello World 程序中添加另一个球体,Bullet 应该会注意到它们的碰撞并对其做出反应。除非您还修改 Hello World 以将它们的恢复原状设置为大于零的值,否则它们实际上不会反弹,但它们会发生碰撞。例如,我在第一个球体的正上方添加了第二个球体(通过在创建球体的代码块周围放置一个 for 循环,并使用循环变量来确定原点 y 值)并扩展模拟,使其运行时间足够长两者都到达飞机。第一个降落在飞机上并在那里休息,第二个降落在第一个飞机上并在那里休息。

如果这没有帮助,那么发布您的一些代码可能是一个很好的下一步。

于 2010-12-23T04:04:30.543 回答