我想知道是否有人可以指点如何在iPhone上使用Box2D实现以下目标:
1)我有一个Box2D世界,其正常重力为-9.8 2)屏幕的下半部分是一个水体
所以,当我的精灵击中水体时,我希望他对浮力作出反应(类似于此视频中的内容:http://www.youtube.com/watch?v=0uX-1GXYIss)
实现这一目标的最佳途径是
1)简单地计算主角精灵的y位置,然后相应地切换重力变量
或2)Box2D中是否有一个特定的功能,它允许我设置我的“水”精灵在我的世界中表现为水并“推”我的主角精灵(同时仍然尊重9.8的世界引力) )
任何信息都将不胜感激
答案 0 :(得分:4)
buoyant force等于流体密度乘以流体体积(使流体位移质量)乘以重力加速度。然而,移位的流体体积可能是昂贵的。我建议根据物体的大小和淹没在液体中的距离,对流量的位移做一个简单的估计。
流体中另一个非常重要的力量是drag力。这使得通过厚流体高速移动物体变得更加困难。通过简单地将速度阻尼一些常数值可以很容易地估算阻力:Force_drag = -b * v
其中b
是阻尼值,v
是物体的速度。