6

我想知道IOS的“Contre jour”游戏有多漂亮。特别是我喜欢弹性“触手”,在 2 分 20 秒的视频中显示: http ://www.youtube.com/watch?v=ptdTdJarWLw

我怎样才能实现这样的效果?

我知道在 cocos2d 中有一种叫做“Verlet 集成”的技术,甚至还实现了“verlet 绳索”来绘制绳索,但是如何对“触手”精灵做出如此好的弹性效果呢?

我有使用 box2D 的经验,并且可能会尝试为此效果实现物理,但找不到如何使用这种弹性变形绘制精灵的解决方案。

任何人都可以帮助我或提供一些提示吗?

只是技术的解释,这可以帮助我吗?

本人对opengl有一点经验,cocos2d经验不错,所以打算用cocos2d。

抱歉英语不好,我希望你能理解我的问题:)

4

1 回答 1

9

如果您使用 Box2D,您可以尝试将 frequencyHz 和 dampingRatio 选项设置为非默认值的距离关节。也许 4-6 左右的低频和 0.5-0.7 左右的阻尼可能是一个很好的起点。您可以将频率视为关节每秒尝试校正距离的次数,将阻尼视为每次校正距离的程度。将阻尼设置为低于 1 的值将意味着关节将更慢地校正距离,并且它将具有弹性/橡胶行为。

至于渲染,您确实可以为此使用 verlet 集成。将距离关节的两个锚点作为“绳子”的端点,并在它们之间以均匀间隔的线放置一些点(看起来不需要太多)。每个时间步长,中间的点将简单地移向它们两侧的两个点的平均值。您可以通过调整中间点在每个时间步移动到目标位置的距离来使绳索看起来更紧或更松。

然后,最终的纹理/精灵渲染将从 Verlet 点的当前位置获取其位置。

于 2012-04-27T09:05:26.767 回答