·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3版更为精确的不规则图形碰撞检测写法示例

时间:2012-12-20 11:43cnblogs.com
[AS3]as3版更为精确的不规则图形碰撞检测写法示例

[AS3]as3版更为精确的不规则图形碰撞检测写法示例

  1. package 
  2. { 
  3.     import com.ui.Star; 
  4.      
  5.     import flash.display.Bitmap; 
  6.     import flash.display.BitmapData; 
  7.     import flash.display.Sprite; 
  8.     import flash.display.StageAlign; 
  9.     import flash.display.StageScaleMode; 
  10.     import flash.events.MouseEvent; 
  11.     import flash.filters.GlowFilter; 
  12.     import flash.geom.Matrix; 
  13.     import flash.geom.Point; 
  14.      
  15.     public class Main extends Sprite 
  16.     { 
  17.         private var bmpd1:BitmapData; 
  18.         private var bmp1:Bitmap; 
  19.         private var bmpd2:BitmapData; 
  20.         private var bmp2:Bitmap; 
  21.          
  22.         public function Main():void 
  23.         {             
  24.             init(); 
  25.         } 
  26.         private function init():void 
  27.         { 
  28.             stage.align = StageAlign.TOP_LEFT; 
  29.             stage.scaleMode = StageScaleMode.NO_SCALE; 
  30.              
  31.             var star:Star = new Star(50); 
  32.              
  33.             bmpd1 = new BitmapData(100,100,true,0); 
  34.             bmpd1.draw(star, new Matrix(1,0,0,1,50,50)); 
  35.             bmp1 = new Bitmap(bmpd1); 
  36.             bmp1.x = 200; 
  37.             bmp1.y = 200; 
  38.             this.addChild(bmp1); 
  39.              
  40.             bmpd2 = new BitmapData(100,100,true,0); 
  41.             bmpd2.draw(star, new Matrix(1,0,0,1,50,50)); 
  42.             bmp2 = new Bitmap(bmpd2); 
  43.             this.addChild(bmp2); 
  44.              
  45.             stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoving); 
  46.         } 
  47.         private function onMouseMoving(event:MouseEvent):void 
  48.         { 
  49.             bmp2.x = mouseX - 50; 
  50.             bmp2.y = mouseY - 50; 
  51.              
  52.             if(bmpd1.hitTest(new Point(bmp1.x, bmp1.y), 255, bmpd2, new Point(bmp2.x, bmp2.y), 255)) 
  53.             { 
  54.                 bmp1.filters = [new GlowFilter()]; 
  55.                 bmp2.filters = [new GlowFilter()]; 
  56.             } 
  57.             else 
  58.             { 
  59.                 bmp1.filters = []; 
  60.                 bmp2.filters = []; 
  61.             } 
  62.         } 
  63.     } 
  64. } 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器