2012-02-12 99 views
0

這是我的問題:actionscript 3 rotation

我有一個叫做player的movieclip,我想要他的輪換;

player.rotation=0; 
player.rotation-=90; 
trace(player.rotation);//this traces -90, not 270 

我想知道爲什麼它dosent說,旋轉270,因爲0是像360,當你旋轉90個degres離開它應該是270;

我問這個,因爲它在我的遊戲會導致一個問題

感謝

回答

3

-90和是不同的值,但將這些值分配給其旋轉屬性的精靈將顯示爲相同,因爲顯示對象的旋轉值不具有有限的範圍。從文檔flash.display.DisplayObject.rotation

值從0到180代表順時針旋轉;從0到 -180的值表示逆時針旋轉。超出此範圍的值將被添加到360或從中減去,以獲得 範圍內的值。例如,my_video.rotation = 450語句相同 與my_video.rotation = 90

如果要限制這個範圍,你必須創建自己的函數來做到這一點。

1

旋轉在Flash從東部開始,然後遞增高達逆時針180順時針或遞減下降到-179。

enter image description here

對於遊戲開發,我建議堅持弧度你需要做的任何角度數學和使用rotation顯示/只渲染。

這裏是一個小的演示輸出從0到360(0)的旋轉:

var shape:Shape = new Shape(); 

for(var i:int = 0; i<360; i++) 
{ 
    shape.rotation ++; 
    trace(shape.rotation); 
} 

您會注意到,輸出時鐘到-179後180