我想知道
IOS的“Contre jour”游戏有多漂亮.
特别是我喜欢有弹性的“触角”,在2分20秒的视频中显示:
http://www.youtube.com/watch?v=ptdTdJarWLw
特别是我喜欢有弹性的“触角”,在2分20秒的视频中显示:
http://www.youtube.com/watch?v=ptdTdJarWLw
我该如何实现这样的效果?
我知道有一种名为“Verlet集成”的技术甚至是用于在cocos2d中绘制绳索的“verlet rope”的实现,但是如何为“触手”精灵制作如此美妙的弹性效果呢?
我有使用Box2D的经验,并且可能尝试为此效果实现物理,但是找不到如何使用这种弹性变形来绘制精灵的解决方案.
任何人都可以帮助我或提供一些提示吗?
甚至对技术的解释,这可以帮助我吗?
我有一点opengl的经验,很棒的cocos2d经验,所以我打算用cocos2d.
抱歉英语不好,我希望,你会明白我的问题:)
解决方法
如果您使用Box2D,您可以尝试将frequencyHz和dampingRatio选项设置为非默认值的距离关节.也许是4-6左右的低频率和0.5-0.7左右的阻尼可能是一个很好的起点.您可以将频率视为关节尝试每秒校正距离的次数,以及每次校正距离的校正程度.将阻尼设置为小于1的值将意味着关节将更慢地校正距离,并且它将具有弹性/橡胶行为.
至于渲染,你确实可以使用verlet集成.将距离关节的两个锚点作为“绳索”的端点,并在它们之间以均匀间隔的线放置一些点(看起来不需要太多).每个时间步长,两者之间的点数将简单地移向两侧各点的平均值.您可以通过调整每个步骤中间点之间移动到目标位置的距离来使绳索看起来更紧或更松.
然后,最终纹理/子画面渲染将从verlet点的当前位置获取其位置.