dis_oo

flash\flex\AS\Unity3d\JS\HTML5\CSS3\AJAX
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

flash中的像素级碰撞

Posted on 2011-11-18 15:53  FLASH春哥  阅读(371)  评论(0)    收藏  举报

什么都不说看代码:

import flash.display.BitmapData;
import flash.events.Event;
import flash.geom.Point;
import flash.events.KeyboardEvent;

map.gotoAndStop(1);
var bmdMap:BitmapData=new BitmapData(map.width,map.height,true,0);
var bmdCar:BitmapData=new BitmapData(car.width,map.height,true,0);
bmdMap.draw(map);
bmdCar.draw(car);
stage.addEventListener(KeyboardEvent.KEY_DOWN,oncontrol);
addEventListener(Event.ENTER_FRAME,ongo);
 function oncontrol(e:KeyboardEvent):void{
	trace(e.keyCode);
	switch(e.keyCode)
	{
		case 37:
		car.x--;
		break;
		case 38:
		car.y--;
		break;
		case 39:
		car.x++;
		break;
		case 40:
		car.y++;
		break;
	}
	
}
function ongo(e:Event):void
{
	if(bmdCar.hitTest(new Point(car.x,car.y),0x55,bmdMap,new Point(map.x,map.y),0x55))
	{
		map.gotoAndStop(2);
	}else
	{
		map.gotoAndStop(1);
	}
}

  

碰撞后的效果