如果我给身体不同的密度/质量,它们仍会以相同的速度下降。我知道在没有空气阻力的地方,质量不会影响下落速度。
但是,那么,我如何逻辑制作,比方说气球和砖块,以不同的速度下降?我能想到的最接近的方法是使用setGravityScale来设置这一切..
答案 0 :(得分:6)
模拟box2d中降低空气速度效果的最佳方法是使用“阻尼”。
请参阅:http://www.box2d.org/manual.html
“阻尼用于降低车身的世界速度。阻尼不同于摩擦,因为摩擦只发生在接触。阻尼不能代替摩擦,两种效应应该一起使用。”
“阻尼参数应介于0和无穷大之间,0表示没有阻尼,无穷大意味着完全阻尼。通常你会使用介于0和0.1之间的阻尼值。我通常不使用线性阻尼,因为它会让身体显得浮动。“
bodyDef.linearDamping = 0.0f;
bodyDef.angularDamping = 0.01f;
答案 1 :(得分:2)
一种选择是禁用重力并自己应用每帧所需的加速度。那是我在游戏中走的路线。 Box2d的内置引力可以快速模拟,但它不是很可定制的。
禁用重力后,您必须确定要应用于对象的加速度公式。有几种不同的流体阻力模型(检查维基百科),所以你必须尝试并选择看起来最好的那种。