2012-03-30 46 views
1

我最近一直在嘗試並嘗試在遊戲中重新創建iOS UI邊緣彈跳效果,這樣如果您滾動過關卡的邊界,相機會慢慢地反彈回來邊界。2d遊戲物理基於速度緩解輸入/輸出

目前我已經實現了一些從ActionScript移植過來的Robert Penner補間計算,但是由於它沒有考慮到我們相機的速度,我不確定這是否是正確的方法。目前,它看起來是這樣的:

​​

實際實現是可在這裏:http://www.jesusgollonet.com/blog/2007/09/24/penner-easing-cpp/

我得出的結論是,這是一種灰色地帶,因爲我還沒有能夠找到關於它的很多信息,或者我不熟悉我試圖描述的那種計算的正確名稱。如果任何人有任何關於在二維遊戲或用戶界面中使用速度進行計算的建議,我很樂意聽到!

+0

這個問題可能更適合[gamedev.stackexchange.com](http://gamedev.stackexchange.com/) – 2012-03-30 12:41:27

+0

這已問過很多次了。一種簡單的方法是使用[sigmoid曲線](http://en.wikipedia.org/wiki/Sigmoid_function)。另一種方法是在運動方向上有一個加速度矢量,當物體/攝像機位於其最終位置的一半時,該加速度矢量將切換方向。 – 2012-03-30 15:24:57

回答

2

您可以在邊緣和相機之間使用critically damped彈簧。你的力量是F = -w * w * x - 2 * w * v其中w是彈簧的固有頻率(嘗試一些不同的值,直到你得到你喜歡的東西)x是從邊界的位移,v是電流速度。

+0

這工作像一個絕對的魅力,正是需要什麼。感謝您的意見,我還搜索了類似主題的其他材料。 – Aequitas 2012-04-02 09:40:54

2

Cocos2d(和-x)具有CCEaseIn和CCEaseOut,among many others

您可以使用時間參數創建這些參數,那麼您是否可以根據相機速度縮放時間?它的移動速度越快,它的「反彈」速度就越快,緩解行動的時間就越短。我不會使用任何花哨的補間實現,因爲cocos2d有許多已經可用的緩動動作。

+0

使用cocos2d的動作系統沒有實現相機移動,我懷疑這是一個可行的解決方案。 – Aequitas 2012-04-02 09:14:02