我有兩個使用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);
}
但它不工作
哦,沒關係。我甚至沒有想過這樣做。林非常確定不適合使用globalToLocal,因爲我的影片剪輯不是嵌套正確的?但是,當使用這個我會使用這種方法是否正確? playerHook.graphics.moveTo(fisherman.x,fisherman.y); – Nathan
我已更新鏈接。 –
好吧,生病試圖弄清楚。我已經做了很多關於這個主題的研究,並且有一個關於如何處理它的想法。但它仍然給我一些問題。如果我弄明白了,我會發帖。謝謝。 – Nathan