Libgdx Box2d车身';振动';当它与静止物体接触时

Libgdx Box2d车身';振动';当它与静止物体接触时,libgdx,box2d,Libgdx,Box2d,以下情况:我有一个box2d车身,在零重力环境下通过加速计进行控制。我通过脉冲将linearVelocity设置为与“滚动”和“俯仰”成比例。 当身体接触任何东西时,都会造成伤害 现在的问题是:当身体与静止物体碰撞时,运动方向仍然指向该方向,身体仍然会受到冲击(身体振动)的伤害 我试图在碰撞后使身体减速,例如随着时间的推移减小最大脉冲值(这是有效的),但我不想让它减速 对如何实现这一目标有何建议 谢谢您应该为设置一个合适的值-在这种情况下,您应该将恢复设置为0 FixtureDef fd

以下情况:我有一个box2d车身,在零重力环境下通过加速计进行控制。我通过脉冲将linearVelocity设置为与“滚动”和“俯仰”成比例。 当身体接触任何东西时,都会造成伤害

现在的问题是:当身体与静止物体碰撞时,运动方向仍然指向该方向,身体仍然会受到冲击(身体振动)的伤害

我试图在碰撞后使身体减速,例如随着时间的推移减小最大脉冲值(这是有效的),但我不想让它减速

对如何实现这一目标有何建议


谢谢

您应该为设置一个合适的值-在这种情况下,您应该将
恢复
设置为0

    FixtureDef fd = new FixtureDef();
    fd.restitution = 0;
恢复是关于身体的“弹性”有多大。您所描述的情况可能是由于恢复太高(身体接触静止物体,弹跳,但由于重力立即坠落,然后弹跳…)


您可以在

上阅读更多内容,谢谢您的回答,我刚刚检查过。不幸的是,所有恢复值都显式设置为0。也许是因为我的身体比较复杂。它包含两个弹簧(距离关节)和一个旋转关节?我会在家里贴一张草图:灰色矩形是一个辅助对象,它的密度为零,没有任何碰撞。我操纵它的角度使主体“倾斜”。蓝色线是配置为弹簧的距离关节