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

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

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

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

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

 

热门文章推荐

请稍候...

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

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