2010-08-13 77 views
1

我想通過設置開始和結束點以及X幀來完成遊戲對象的旋轉。然後插入開始和結束角度以完成它。插值角度

它運作良好,但我試圖做最短的路線作爲選項(而不是「做最長的路線」)。 在大多數情況下,它可以工作,但如果旋轉超過360或低於0,我不知道如何檢測它並更改數字。 (例如,如果我想從270到90的最短路徑,最短路徑超過360/0,所以從不使用,所以270應該變成-45來插入到90)。 我很難解釋,我不是英語母語,因此我將使用我所擁有的僞代碼。

thing.start_angle = 180 
thing.end_angle = 90 
thing.angle = interpolate(thing.start_angle, thing.end_angle, position) 

我喜歡這種方式(關於詳細的時間控制在「如果角度> max_angle接角 - 1」),但我不能找到如何檢測,如果該角度將旋轉「規則」 ... 我怎樣才能找到如果旋轉將低於0或360以上,採取相應的行動?

回答

1

的角度將包裝如果

thing.end_angle - thing.start_angle> = 180或< -180

(假定爲0〜379的角度範圍)。

+0

儘管使用了正確格式的角度,但似乎可以用<= -180而不是0來工作......哦,這很有效,非常感謝! – MissHalberd 2010-08-13 05:27:01

+0

是的,你是對的:) – sje397 2010-08-13 05:29:20