我最近一直在试验并试图在我的游戏中重新创建iOS UI边缘弹跳效果,这样如果你滚过一个关卡的边界,相机会慢慢反弹到边界。
目前我已经实施了一些从ActionScript移植的Robert Penner的补间计算,但我不确定这是否是正确的方法,因为它没有考虑我们的相机的速度。目前它看起来像这样:
easeInOut(currentTime, startValue, endValue, duration);
实际的实施可在此处获取:http://www.jesusgollonet.com/blog/2007/09/24/penner-easing-cpp/
我得出的结论是,这是一个灰色区域,因为我无法找到关于它的更多信息,或者我不熟悉计算的正确名称我我试图描述。如果有人在2D游戏或用户界面中对缓慢进/出计算中使用速度有任何建议,我会非常有兴趣听到它!
答案 0 :(得分:2)
Cocos2d(和-x)具有CCEaseIn和CCEaseOut,among many others。
您可以使用时间参数创建这些参数,那么您是否可以根据相机速度缩放时间?它移动的速度越快,它越快“反弹”,给予缓动动作的时间越短。我不会为此使用任何奇特的补间实现,因为cocos2d已经有许多缓动操作。
答案 1 :(得分:2)
您可以在边缘和相机之间使用critically damped弹簧。你的力量将是F = -w * w * x - 2 * w * v其中w是弹簧的固有频率(尝试几个不同的值,直到得到你喜欢的东西)x是从边界的位移,v是当前的速度。