0
我的遊戲的設置依賴於將幾個精靈沿着可能看起來像是弓形,橢圓形或者更復雜一些的曲線放置(假設它會變成貝塞爾曲線) 。我希望能夠將我的精靈放在相等的距離上。如何在cocos2d中沿着曲線放置精靈
任何人都可以分享如何做到這一點?
使用cocos2d的2.1
我的遊戲的設置依賴於將幾個精靈沿着可能看起來像是弓形,橢圓形或者更復雜一些的曲線放置(假設它會變成貝塞爾曲線) 。我希望能夠將我的精靈放在相等的距離上。如何在cocos2d中沿着曲線放置精靈
任何人都可以分享如何做到這一點?
使用cocos2d的2.1
我不知道是否有這樣做的更簡單的方法,但我們可以用數學方程式爲曲線沿安排任何曲線精靈。
對於拋物線曲線(優勢:對稱,便於放置等距點) 找到滿足您的起點和終點的方程,並使用下面的函數獲取起點和終點之間等距x點的y值。
例如:Y = -x^2 + 20× - 1(一般方程式爲:y = AX^2 + BX + C)
static inline parabolicYValue(float x, float a,float b, float c){
return (powf(a*x,2) + b*x + c);
}
你可以想出用於Bezier曲線類似的功能: (貝塞爾三次曲線)
static inline CGFloat bezierYValue(float a, float b, float c, float d, float x)
{
return (powf(1-x,3) * a +
3*x*(powf(1-x,2))*b +
3*powf(x,2)*(1-x)*c +
powf(x,3)*d);
}
但是,在bezier曲線上獲得等距點是一件繁雜的工作。另一方面,如果你是等距的,你的意思是,只有沿x軸的距離,那麼這應該不成問題。