【问题标题】:Box2d body 'vibrates' when it is in contact with static objectBox2d 身体在与静态物体接触时会“振动”
【发布时间】:2023-03-31 20:23:01
【问题描述】:

以下情况:我有一个 box2d 身体,我在零重力环境中通过加速度计控制它。我通过脉冲设置了与“滚动”和“俯仰”成比例的线性速度。 当身体接触到任何东西时,都会造成伤害。

现在的问题:当 Body 与静态物体碰撞时,并且运动的方向仍然指向那个方向,Body 仍然会因为 Impulses(Body 振动)而受到伤害。

我试图在碰撞后减慢车身,例如随着时间的推移减少最大脉冲值(这有效),但我不想减慢它。

有什么建议可以实现吗?

谢谢

【问题讨论】:

    标签: libgdx box2d


    【解决方案1】:

    您应该为Fixture 设置适当的值 - 在这种情况下,您应该将restitution 设置为 0。

        FixtureDef fd = new FixtureDef();
        fd.restitution = 0;
    

    restitution 是关于“有弹性”的身体。您所描述的情况可能是由于恢复力太高(身体接触到静态的,弹跳但由于重力立即坠落然后弹跳......)

    您可以在Box2D official reference阅读更多内容

    【讨论】:

    • 感谢您的回答,我刚刚检查过了。不幸的是,所有恢复值都明确设置为 0。也许是因为我有一个更复杂的 Body。它包含两个弹簧(距离关节)和一个旋转关节?我会在家里发布草图
    • 这里是:link 灰色矩形是一个辅助对象,它的密度为零,根本不发生碰撞。我操纵它的角度使主体“倾斜”。蓝线是配置为弹簧的距离接头
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多