Хорошо, у меня есть два файла png, круг и лабиринт. В основном лабиринт представляет собой квадрат с несколькими прорезанными по нему дорожками. Я хочу нарисовать эти изображения, переместить круг к координатам мыши и получить текст с надписью «ударить», когда круг пересекает стену лабиринта, и «пропустить», когда это не так. Теперь я хочу сделать это с помощью метода bitmapdata.hittest. Круг - это изображение размером 32x32, а лабиринт - изображение размером 256 * 256. Я все настроил и все правильно рисует на экране, но я не могу заставить его работать фактическую часть обнаружения столкновений, то есть он всегда отображает «промах», а не «попадание», даже когда круг четко пересекает лабиринт. Вот что я сделал:
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';
}
}
}
}
Так может кто-нибудь сказать мне, что я здесь не так делаю?