1

如果我给物体不同的密度/质量,它们仍然以相同的速度下降。我知道在没有空气阻力的地方,质量不会影响下落速度。

但是,我如何在逻辑上使气球和砖块以不同的速度下落?我能想到的最接近的方法是使用 setGravityScale 来设置这一切..

4

2 回答 2

6

在box2d中模拟空气减速效果的最佳方法是使用“阻尼”。

见: http: //www.box2d.org/manual.html

“阻尼用于降低物体的世界速度。阻尼与摩擦不同,因为摩擦只发生在接触中。阻尼不能替代摩擦,两种效果应该一起使用。”

“阻尼参数应该在 0 到无穷大之间,0 表示没有阻尼,无穷大表示完全阻尼。通常你会使用 0 到 0.1 之间的阻尼值。我一般不使用线性阻尼,因为它会使物体看起来很漂浮。”

bodyDef.linearDamping = 0.0f;

bodyDef.angularDamping = 0.01f;

于 2012-06-30T16:01:51.253 回答
2

一种选择是禁用重力并自己应用每帧所需的加速度。这就是我在比赛中所走的路线。Box2d 的内置重力可以用于快速模拟,但它不是很可定制。

禁用重力后,您必须决定将哪个加速度公式应用于您的对象。有几种不同的流体阻力模型(查看维基百科),因此您必须进行试验并选择看起来最好的模型。

于 2012-06-30T13:59:44.090 回答