2012-11-21 58 views
3

我試圖在橢圓路徑中移動多個子畫面(圖像),以使距離(弧距)保持均勻。以均勻速度在橢圓路徑中移動多個子畫面

我試圖

  • 移動通過角度每個精靈角,但是這個問題是距離移動,同時移動圍繞長軸的單位角度是不同於圍繞短軸的是,雖然移動單位角度 - 因此不同的距離移動。

  • 只需將x軸均勻地改變即可移動精靈,但它再次圍繞主軸移動更多。

因此,任何想法如何在沒有它們追趕/重疊的情況下均勻地移動子畫面?

其他信息:

  • 將在的OnMouseMove/onTouchMoved叫,所以我想這不是 應該是多少CPU密集型。
  • 雖然它是一個通用算法的問題,但 如果它幫助我使用了cocos2d-x

回答

1

因此,這是我落得這樣做(這解決了這個問題對我來說):

我把它在圓的方程中增加1度。使用sin/cos(角度)*半徑計算x和y。爲了使它成爲一個橢圓,我乘以一個因子。

因子是yIntercept/xIntercept。

所以它看起來像這樣在年底

FACTOR = Y_INTERCEPT/X_INTERCEPT; 

//calculate previous angle 
angle = atan((prev_y/FACTOR)/prev_x); 

//increase angle by 1 degree (make sure its not radians in your case) 
angle++; 

//new x and y 
x = cos(newangle) * X_INTERCEPT; 
y = sin(newangle) * X_INTERCEPT * FACTOR;