以下情况:我有一个box2d Body,我在零重力环境中通过加速度计控制。我通过脉冲设置linearVelocity与'roll'和'pitch'成比例。 当身体接触任何东西时,它会造成伤害。
现在的问题:当身体与静态物体碰撞,并且运动的方向仍指向那个方向时,身体仍将因冲动(身体振动)而受到伤害。
我试图在碰撞后减速身体,例如随着时间的推移降低最大脉冲值(这是有效的),但我宁愿不想放慢速度。
有关如何实现这一目标的任何建议吗?
由于
答案 0 :(得分:1)
您应为Fixture设置正确的值 - 在这种情况下,您应将restitution
设置为0.
FixtureDef fd = new FixtureDef();
fd.restitution = 0;
restitution
是多么“有弹性”的身体。你所描述的情况可能是由于恢复过高造成的(身体触及静止状态,反弹但是由于重力而立即下降然后反弹......)