子弹物理引擎,如何冻结一个对象?
使用项目符号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
的将再次允许运动。
上一篇: Bullet physics engine, how to freeze an object?
下一篇: call(S, 0, 0) won't work (attempted to call a string value)?