var Apoint:Point = new Point(bullet.x, bullet.y);
var Bpoint:Point = new Point(enemy.x, enemy.y);
var distanceAB:Number = Point.distance(Apoint, Bpoint);
if (distanceAB < )
{
//碰撞
}
2.像素級別的碰撞,消耗挺大的,如果沒必要很精確的話,不推薦!
package
{
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.geom.Matrix;
import flash.geom.Point;
public class BitmapCollision extends Sprite
{
private var bmpd1:BitmapData = new BitmapData(stageWidth, stageHeight,true,0);
private var bmpd2:BitmapData = new BitmapData(stageWidth, stageHeight,true,0);
private var spr1:Sprite = new Sprite;
private var spr2:Sprite = new Sprite;
public function BitmapCollision(spr1:Sprite,spr2:Sprite)
{
this.spr1 = spr1;
this.spr2 = spr2;
}
public function updataHandler():void
{
bmpd1.fillRect(bmpd1.rect, 0);
bmpd2.fillRect(bmpd2.rect, 0);
bmpd1.draw(spr1, new Matrix(1, 0, 0, 1, spr1.x, spr1.y));
bmpd2.draw(spr2, new Matrix(1, 0, 0, 1, spr2.x, spr2.y));
if (bmpd1.hitTest(new Point(), 255, bmpd2, new Point(), 255))
{
//碰撞
}
else
{
}
}
}
}
3. as 自帶的 hitTest!
方法很多,找到適合自己的!