2

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

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

那么有人知道解决方案导致我被卡住了吗?

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

4

1 回答 1

3

取自 Box2D 手册:

夹具密度用于计算父实体的质量属性。密度可以为零或正。您通常应该对所有灯具使用相似的密度。这将提高堆叠稳定性。

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

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

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

于 2013-05-13T10:07:20.607 回答