2016-02-29 86 views
1

我想沿着路徑以可變速度移動精靈。理想情況下,我想沿着一條貝塞爾路線以不同的速度前進,這意味着它沿着路線緩慢而不會以恆定的速度移動。有沒有辦法做到這一點?Coco2d在Bezier速度MoveBy

喜歡的東西:

ccBezierConfig path; // With it's points 
ccBezierConfig speed; // With it's points 
BezierBy::create(duration, path, speed); 

顯然這是僞代碼,但我希望這是有道理的。我想以更快的速度執行移動動畫。

+0

更精確:你想要一個自定義的遍歷速度,而不是「貝塞爾速度」。根據控制變量的線性增量,Bezier曲線有一個且只有一個遍歷速度函數,所以如果你在談論「緩動」,這與真正的Bezier遍歷速度之間的差異是恆定速度。 –

+0

是的,我正在討論緩動,但不是內置的EaseIn,EaseOut,EaseInOut函數。 – Rockster160

回答

1

事實證明,這是一個內置函數。 (正如我以爲 - 我只是找不到它。) - - -

對於任何人可能在未來(或者,你知道,我在6個月)偶然發現,我用JumpBy/JumpTo。

JumpBy::create(float duration, const cocos2d::Vec2 &position, float height, int jumps) 

duration是花費的時間來完成的路徑的數量。 position是路徑的END點。 height是路徑的頂點,jump通常應該設置爲1,以達到與我的效果類似的效果,但增加它會給您帶來「彈跳」效果。