4

I'm working on a game where the water acts as a property that can be used to solve puzzles and interact with other screen elements and I'm very much interested in learning how they managed to get such a fluid physics interaction.

Can that be accomplished with Box2D using particles?

4

1 回答 1

7

在看到您正在谈论的游戏视频后(并且在被告知您正在谈论特定游戏之后),我认为元球模拟可能会成功。

谷歌搜索“我的水元球在哪里”,我在Ludum Dare条目中找到了如何实现这个精确游戏的描述:

http://www.ludumdare.com/compo/?p=104952&preview=true

粒子模拟器会是最好的,但将其集成到游戏中需要一些我没有的宝贵时间。所以我创建了一个水池和障碍物,以及大量密度很高的小滑球。您不需要任何摩擦、阻尼和少量恢复。当我的全屏尺寸为 48m x 32m 时,一个球的半径约为 0.25m。

模拟许多经常夹在一个地方的动态物体是非常繁重的操作。这是需要考虑的。出于这个原因,我使用了非常不准确的物理设置。我只用一个速度和位置子步跨步了世界。此外,我将物理步数固定为 30/s。(比赛后我注意到 20 就足够了)总是在处理固定时间步长时,当物理没有步进但渲染是时,你想要插值或推断位置。我选择了外推。这很容易拉出来。

RenderPos = PhysicalPos + Velocity * TimeAccumulator

然后他们继续描述渲染是如何欺骗玩家相信它是一个流体而不是小球。他们使用一种元球渲染形式。

我的方法是将水滴渲染为半径是物体物理尺寸两倍的元球。制作元球的最快方法是中间不透明且边缘完全透明且具有平滑圆形渐变的精灵。

于 2012-04-18T17:41:39.893 回答