1
好吧,所以我有兩個PNG文件,一個圓圈和一個迷宮。基本上迷宮是一個廣場,有一些通過它雕刻的路徑。我想繪製這些圖像,將圓圈移動到鼠標座標上,當圓圈與迷宮牆壁相交時,文本會顯示「點擊」,如果沒有,則會顯示「未命中」。現在我想使用bitmapdata.hittest方法來完成這些操作。該圓是32x32圖像,迷宮是256 * 256圖像。我已經完成了一切設置,並且所有內容都正確地在屏幕上繪製,但我無法獲得其實際碰撞檢測部分的工作情況,即它始終顯示「未命中」而不是「已命中」,即使圓圈與迷宮。以下是我所做的:使用bitmap.hittest在actionscript中的碰撞檢測
package
{
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.TextField;
import flash.utils.getTimer;
import flash.net.URLRequest;
import flash.ui.Mouse;
import flash.system.*;
import Math;
public class MAIN extends Sprite
{
private var TEXT:TextField = new TextField();
public var LOADER_1:Loader = new Loader();
public var LOADER_2:Loader = new Loader();
public var DATA_1:BitmapData;
public var DATA_2:BitmapData;
public function MAIN()
{
LOADER_2.load(new URLRequest('TEST.png'));
LOADER_2.x = 125; LOADER_2.y = 125;
DATA_2 = new BitmapData(256,256,true,0);
DATA_2.draw(LOADER_2);
addChild(LOADER_2);
LOADER_1.load(new URLRequest('BALL.png'));
LOADER_1.x = mouseX; LOADER_1.y = mouseY;
DATA_1 = new BitmapData(32,32,true,0);
DATA_1.draw(LOADER_1);
addChild(LOADER_1);
Mouse.hide();
stage.frameRate = 60;
addChild(TEXT);
stage.addEventListener(Event.ENTER_FRAME,STEP);
}
public function STEP(event:Event):void
{
LOADER_1.x = mouseX;
LOADER_1.y = mouseY;
if (DATA_1.hitTest(new Point(LOADER_1.x,LOADER_1.y),255,DATA_2,new Point(LOADER_2.x,LOADER_2.y)))
{
TEXT.text = 'hit';
}
else
{
TEXT.text = 'miss';
}
}
}
}
那麼有人能告訴我我在做什麼錯嗎?
那我該怎麼做呢?我試過這個: LOADER_1.contentLoader.addEventListener(Event.COMPLETE,LOADED_1); 但有一個編譯器錯誤。 – user421215 2010-08-27 01:38:20
好吧,我得到它編譯(這是contentLoaderInfo),但現在沒有任何顯示。這是我做的(抱歉,如果它沒有顯示出來右): \t \t \t LOADER_2.contentLoaderInfo.addEventListener(Event.COMPLETE,LOADED_2); \t \t \t LOADER_2.load(new URLRequest('TEST.png')); \t \t \t \t \t \t功能LOADED_2(事件:事件):無效 \t \t \t { \t \t \t \t LOADER_2.x = 125; \t \t LOADER_2.y = 125; \t \t \t \t DATA_2 = new BitmapData(256,256,true,0); \t \t \t \t DATA_2.draw(LOADER_2); \t \t \t \t addChild(LOADER_2); \t \t \t} – user421215 2010-08-27 01:56:02
我結束了使用嵌入代替... 我不喜歡它,但它是如此容易處理。 – user421215 2010-09-01 00:43:23