2011-06-17 56 views
0

嘿所以我有一個精靈班,並且我正在使它每秒轉360度,同時提高速度。但是,我最終成了螺旋狀,並沒有停留在由每秒360度連續轉動形成的原始圓上。如何提高精靈速度而不是以螺旋而不是盤旋

我該如何解決這個問題?精靈需要加快速度並保持相同的路徑。

下面的代碼:

box.Accelerate(10*Window.GetFrameTime()); 
box.Turn(360.0*Window.GetFrameTime()); 
+0

什麼是加速?線性還是旋轉? – totowtwo

回答

2

如果你想使一個精靈轉了一圈,把該代碼。例如,

float time = Window.GetFrameTime(); 
angle += speed * (time - lastTime); 
lastTime = time; 
float x = sinf(angle), y = cosf(angle); 
box.SetPos(50*x + center.x, 50*y + center.y); 
box.Turn(angle + QUARTER_TURN); 
2

如果子畫面正在加速(移動速度每秒),但以每秒360度的恆定速度還在轉動,它將始終在向外螺旋移動。

認爲它是這樣的:

如果子畫面移動圍繞半徑爲1(即,單位圓)的圓,以每秒和移動360度的速度旋轉,以2 * PI的速度單位(即你的圓的周長)每秒鐘,精靈會每隔一秒鐘在圓周上一直移動。

如果您提高精靈的移動速度,但它保持在同一個圓上,它會比每一秒鐘更快地圍繞圓圈更快地移動到。如果它仍然每秒鐘繞着圓圈旋轉一圈,圓圈必須變大。

爲了讓您的精靈保持在同一個圓上,它還必須提高與其加速速度成比例的速率。