2012-02-14 92 views
0

我有一個MovieClip,表示我的遊戲中的角色。我喜歡從我的角色槍尖射出「創造子彈」。問題是,當我的角色轉身時,點也圍繞着影片剪輯軸旋轉。如何跟蹤旋轉MovieClip上的點?

是否有可能輕易地跟蹤這一點,以便我可以在同一位置動態地創建新對象。

我試圖添加一個新的MC作爲一個孩子到我的角色,在槍口的初始位置。在一些系統中,小孩對象「跟隨」他們的父母,但它似乎並沒有在這裏工作。

是否有任何其他「原生」的方式做到這一點,或者我只需要有一個相對於人物 - 動畫片片起源的點的極座標表示,並將MC旋轉添加到theta,以便我可以計算X和Y座標?

+0

簡單的數學http://en.wikipedia.org/wiki/Circle – 2012-02-14 20:13:47

回答

2

嘗試使用localToGlobal()globalToLocal()將角色動畫片段座標轉換爲其父項的方法。

+0

聽起來像我一直在尋找的東西...我會明天嘗試 – varesa 2012-02-14 21:11:51

1

設置了槍(我假設它是在一個臂的末端?),這樣槍尖離支點徑直穿過影片剪輯。

然後通過觸發該子彈三個參數的方法,包括:在x和槍MC的y位置,和它的當前角度。

的代碼爲你的子彈初始位置可能是這個樣子:

public function CreateBullet(x,y:Number, degree:Number) 
{ 
    // set start position 
    this.x = x + ARMLENGTH*Math.cos((degree/180)*Math.PI); 
    this.y = y + ARMLENGTH*Math.sin((degree/180)*Math.PI); 
} 

哪裏ARMLENGTH是從樞軸點到槍的末端的距離。

兩個警告,Flash可以做奇怪的事情用的角度,所以你可能有如果,如果朝後玩家進行的,如果在CreateBullet()語句倒度。另外,如果你有槍MC爲你的性格的孩子,你可能需要做一個點,支點是那麼做localToGlobal就可以了。有一個很好的參考here

+0

假設槍在一邊,將支點襯在桶上會讓玩家難以旋轉。我想到了這一點,但我猜想轉身/瞄準會「看起來很醜」 – varesa 2012-02-14 21:09:10