2014-02-13 27 views
0

我有兩個使用Flash Develop通過AS3添加到舞臺的影片剪輯,一個名爲playerHook的影片剪輯和另一個fisherman。兩者都添加到舞臺在我的主要構造函數,像這樣:使用Graphics class API處理兩個電影剪輯的問題

fisherman = new mcFisherman; 
stage.addChild(fisherman); 
fisherman.x = (stage.stageWidth/2) + 250; 
fisherman.y = (stage.stageHeight/2) - 100; 

我有一個名爲playerHookLine();一個單獨的函數由我的主要事件稱爲輸入框gameloop。

該功能用一條線連接兩個電影剪輯,應該像釣魚杆線一樣。它做得非常好。

我遇到的問題是當我開始玩遊戲時,我的鉤線沒有註冊HitTestObject,就像我的playerHook影片剪輯那樣。

我已經設法調整了一下代碼,它確實開始註冊,但是線路應該連接的點沒有一個是正確的,它的位置都是正確的。下面是函數的代碼:

private function playerHookLine():void 
{ 
    graphics.clear(); 
    graphics.lineStyle(1, 0, 1); 
    graphics.moveTo(fisherman.x, fisherman.y); 
    graphics.curveTo(playerHook.x, playerHook.y, mouseX, mouseY); 

} 

當我的代碼改成這樣:

private function playerHookLine():void 
{ 
    playerHook.graphics.clear(); 
    playerHook.graphics.lineStyle(1, 0, 1); 
    playerHook.graphics.moveTo(fisherman.x, fisherman.y); 
    playerHook.graphics.curveTo(playerHook.x, playerHook.y, mouseX, mouseY); 
} 

然後將其註冊則hitTest與鉤沿着但線路不再在正確的位置。我在做什麼錯了,我該如何正確使用圖形API代碼?我希望線和PlayerHook能同敵人在屏幕上進行hitTest測試,但我也希望線路仍然連接到漁夫和玩家掛鉤。

最後,我的playerHook是由鼠標控制的。所以它隨着鼠標的移動而移動。

這是我到目前爲止有:

private function playerHookLine():void 
    { 


     var playerHookGlobalPos:Point = playerHook.localToGlobal(new Point()); 
     var fishermanGlobalPos:Point = fisherman.localToGlobal(new Point()); 

     playerHook.graphics.clear(); 
     playerHook.graphics.lineStyle(1, 0, 1); 
     playerHook.graphics.moveTo(fisherman.x, fisherman.y); 
     playerHook.graphics.curveTo(playerHookGlobalPos.x, playerHookGlobalPos.y, mouseX, mouseY); 


    } 

但它不工作

回答

1

有很多區別的,

graphics.moveTo(fisherman.x, fisherman.y); //指主類即超。 (階段(全球)座標)

playerHook.graphics.moveTo(fisherman.x, fisherman.y); //這是指playerHook對象(本地座標)。

根據您所提供資料的資訊,我認爲你必須使用,

globalToLocal()

+0

哦,沒關係。我甚至沒有想過這樣做。林非常確定不適合使用globalToLocal,因爲我的影片剪輯不是嵌套正確的?但是,當使用這個我會使用這種方法是否正確? playerHook.graphics.moveTo(fisherman.x,fisherman.y); – Nathan

+0

我已更新鏈接。 –

+0

好吧,生病試圖弄清楚。我已經做了很多關於這個主題的研究,並且有一個關於如何處理它的想法。但它仍然給我一些問題。如果我弄明白了,我會發帖。謝謝。 – Nathan