1

我最近一直在尝试并尝试在我的游戏中重新创建一种 iOS UI 类型的边缘弹跳效果,这样如果您滚动越过关卡的边界,相机就会慢慢地弹回边界。

目前我已经实现了一些从 ActionScript 移植的 Robert Penner 的补间计算,但是我不确定这是否是正确的方法,因为它没有考虑到我们相机的速度。目前它看起来像这样:

easeInOut(currentTime, startValue, endValue, duration);

实际实现可在此处获得:http: //www.jesusgollonet.com/blog/2007/09/24/penner-easing-cpp/

我得出的结论是,这是一个灰色区域,因为我找不到太多关于它的信息,或者我不熟悉我正在尝试的那种计算的正确名称来描述。如果有人对在 2d 游戏或 UI 中的缓入/缓出计算中使用速度有任何建议,我很想听听!

4

2 回答 2

2

Cocos2d(和 -x)有 CCEaseIn 和 CCEaseOut等等

您使用时间参数创建这些,所以您不能仅根据相机速度缩放时间吗?它移动得越快,它“反弹”回来的速度就越快,而缓动动作的时间就越短。我不会为此使用任何花哨的补间实现,因为 cocos2d 已经有许多可用的缓动操作。

于 2012-03-30T14:17:14.503 回答
2

您可以在边缘和相机之间使用临界阻尼弹簧。你的力量是 F=-w*w*x - 2*w*v 其中 w 是弹簧的自然频率(尝试几个不同的值,直到你得到你喜欢的东西)x 是从边界的位移,v 是当前速度。

于 2012-03-31T03:04:57.697 回答