[英]Object does not rotate around pivot point
我有一個看起來像這樣的對象:
當我嘗試使用[INSTANCENAME].rotation += 10;
旋轉它時[INSTANCENAME].rotation += 10;
它仍然圍繞物體的中間旋轉。 難道我做錯了什么?
我做了一些研究,顯然沒有直接的方法來以編程方式更改樞軸點,AFAIK。 相當奇怪,因為您可以在Flash Pro IDE中更改它。 (對於那些讀數,樞軸點與注冊點不同。)
[編輯:更多地考慮它,我不認為樞軸點實際上“存在”,至少在可編程屬性的背景下。 它僅存在於Flash IDE中的某些工具的上下文中。
您需要將對象ALONE放在另一個對象中,以便內部對象的所需樞軸點位於外部對象的中心上方。 然后,旋轉外部對象。
您可以稍后通過更改內部對象的位置來控制對象的“軸心點”。
由於外部對象的中心根據其大小移動,並且內部對象的位置決定外部對象的大小,因此您需要應用一些數學運算。 內部對象的x位置需要等於從內部對象上的期望樞軸點到該內部對象的最右邊緣的距離。 相同的概念適用於y位置。
無論您選擇哪種方式,都可以直接在IDE中完成,也可以通過代碼完成。
動態更改此代碼的示例。 此函數位於外部對象內。 (如果需要,可以從事件監聽器獲取pivotX和pivotY。)[抱歉,代碼未經測試。]
function newPivot(int pivotX, int pivotY):void
{
inner.x = inner.width - pivotX;
inner.y = inner.height - pivotY;
}
我希望能解決你的問題!
一個非常簡單的方法就是這樣做。
注意:僅適用於FLASH IDE。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.