在iPhone上使用Box2D浮力

时间:2011-04-16 15:46:39

标签: iphone cocos2d-iphone box2d

我想知道是否有人可以指点如何在iPhone上使用Box2D实现以下目标:

1)我有一个Box2D世界,其正常重力为-9.8 2)屏幕的下半部分是一个水体

所以,当我的精灵击中水体时,我希望他对浮力作出反应(类似于此视频中的内容:http://www.youtube.com/watch?v=0uX-1GXYIss

实现这一目标的最佳途径是

1)简单地计算主角精灵的y位置,然后相应地切换重力变量

或2)Box2D中是否有一个特定的功能,它允许我设置我的“水”精灵在我的世界中表现为水并“推”我的主角精灵(同时仍然尊重9.8的世界引力) )

任何信息都将不胜感激

1 个答案:

答案 0 :(得分:4)

buoyant force等于流体密度乘以流体体积(使流体位移质量)乘以重力加速度。然而,移位的流体体积可能是昂贵的。我建议根据物体的大小和淹没在液体中的距离,对流量的位移做一个简单的估计。

流体中另一个非常重要的力量是drag力。这使得通过厚流体高速移动物体变得更加困难。通过简单地将速度阻尼一些常数值可以很容易地估算阻力:Force_drag = -b * v其中b是阻尼值,v是物体的速度。