子弹物理引擎,如何冻结一个对象?

使用项目符号2.76我试图冻结一个对象(刚体),以便它立即停止移动,但仍然响应碰撞。

我尝试将它的激活状态设置为DISABLE_SIMULATION,但对其他对象几乎不存在。 此外,如果对象在禁用时与对象“碰撞”,则会发生奇怪的事情(对象在静态物体中坠落等)

我想,暂时把它转换成一个静态的刚体可以工作,但是在Bullet的方面有没有现成的“原生”方法来实现这一点?

编辑:有没有办法关闭特定对象的重力?


该文档有点缺乏,但可以假设下面的方法可以用来禁用特定主体上的引力:

void btRigidBody::setGravity(const btVector3 &acceleration)

只需将刚体的质量设置为0,然后它变成静态的...

http://bullet.googlecode.com/svn/trunk/Demos/HelloWorld/HelloWorld.cpp


有一些叫做setLinearFactor(x,y,z)setAngularFactor(x,y,z) btRigidBody函数可以分别限制沿特定轴的运动和围绕特定轴的旋转。 用全部0作为参数调用这两个函数应该停止所有运动。 与所有再次打电话给他们1的将再次允许运动。

链接地址: http://www.djcxy.com/p/95463.html

上一篇: Bullet physics engine, how to freeze an object?

下一篇: call(S, 0, 0) won't work (attempted to call a string value)?