【问题标题】:Farseer physics mass/weight issueFarseer 物理质量/重量问题
【发布时间】:2013-05-13 07:34:06
【问题描述】:

我已经创建了一个平台游戏,它使用了一个玩家和一些物体等的 Farseer 物理学,但在物体的质量方面遇到了一些问题。

播放器由一个轮子和一个与关节相连的躯干组成,当不在任何物体上设置质量时,一切都几乎完美无缺。但是不使用质量会产生不稳定的模拟,因为当更改对象的纹理时,质量会奇怪地增加或减少。但是,当分配正确的质量和密度时,没有任何效果,我不知道为什么。 我增加了力量等以对应于东西的新重量,但是当移动玩家时,他来回滑动并在停止时侧向反弹。当拿起一个物体时,他会在整个屏幕上乱砍。

那么有没有人知道导致我卡住的解决方案?

到目前为止,我唯一发现的是,在 Farseer 物理学中,物体的质量是通过其固定装置的密度来计算的。因此,改变纹理时重量增加/减少。但是在手动分配权重时我无法让它工作。

【问题讨论】:

    标签: c# xna physics physics-engine farseer


    【解决方案1】:

    取自 Box2D 手册:

    夹具密度用于计算物体的质量属性 母体。密度可以为零或正。你一般应该 对所有固定装置使用相似的密度。这将改善 堆叠稳定性。

    设置密度时不会调整物体的质量。你必须 为此,请调用 ResetMassData。

    fixture->SetDensity(5.0f);    
    body->ResetMassData();
    

    您可能需要重置海量数据才能使其正常工作。

    【讨论】:

    • 我在Farseer Physics中使用了相应的功能,它可以工作。 body.ResetMassData(); body.Mass = mass;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多