package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.MouseEvent; import flash.filters.GlowFilter; import flash.geom.Matrix; import flash.geom.Point; import model.Star; public class BitmapCollision1 extends Sprite { private var bmpd1:BitmapData; private var bmp1:Bitmap; private var bmpd2:BitmapData; private var bmp2:Bitmap; public function BitmapCollision1() { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; //绘制星星 var star:Star = new Star(50); bmpd1 = new BitmapData(100, 100, true, 0); bmpd1.draw(star, new Matrix(1, 0, 0, 1,50, 50)); bmp1 = new Bitmap(bmpd1); bmp1.x = 200; bmp1.y = 200; addChild(bmp1); bmpd2 = new BitmapData(100, 100, true, 0); bmpd2.draw(star, new Matrix(1, 0, 0, 1,50, 50)); bmp2 = new Bitmap(bmpd1); bmp2.x = 200; bmp2.y = 200; addChild(bmp2); stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveing); } private function onMouseMoveing(event:MouseEvent):void { bmp2.x = mouseX - 50; bmp2.y = mouseY - 50; //如果发生碰撞 if(bmpd1.hitTest(new Point(bmp1.x, bmp1.y), 255, bmpd2, new Point(bmp2.x, bmp2.y), 255)) { bmp1.filters = [new GlowFilter()]; bmp2.filters = [new GlowFilter()]; } else { bmp1.filters = []; bmp2.filters = []; }
//下面是检测一个点是否与一个位图碰撞。
//if(bitmapDate1.hitTest(new Point(bitmap1.x, bitmap1.y),255,new Point(mouseX, mouseY))) { //bitmap1.filters = [new GlowFilter()]; //} else { // bitmap1.filters = []; //} //} } }
flash中的碰撞检测
最新推荐文章于 2012-06-30 16:51:09 发布