flash中的碰撞检测(as3殿堂之路)

1.主要AS3 API

  hitTestObject(obj:DisplayObject):Boolean

  hitTestPoint(x:Number,y:Number,shapeFlag:Boolean=false);

     shapeFlag 定义检查的是显示对象的实际像素(true);还是显示对象的边框(false)

 

package as3
{
	import flash.display.Sprite;
	import flash.events.Event;
	
	public class SampleHittest extends Sprite
	{
		private var circle:Sprite;
		public function SampleHittest()
		{
			circle = new Sprite();
			circle.graphics.beginFill(0x669900);
			circle.graphics.drawCircle(0,0,10);
			circle.graphics.endFill();

			//自定义类 生成圆角矩形
			var rectA:RectSprite = new RectSprite("A",0xffcc00);
			rectA.mouseChildren = false;
			rectA.name = "A";
			rectA.x = 100;
			rectA.y = 50;
			//自定义类 生成一个五角形
			var pointStar:StarShape = new StarShape();
			pointStar.x = 200;
			pointStar.y = 200;
			pointStar.width =10;
			pointStar.height = 10;
			addChild(pointStar);
			
			addChild(rectA);
			addChild(circle);

                        //圆形图形开起拖动
			circle.startDrag(true);
                        //每帧调用 isHit 检测碰撞
			rectA.addEventListener(Event.ENTER_FRAME , isHit);
			
			
		}
		private function isHit(evt:Event):void
		{
			if(circle.hitTestObject(evt.target as RectSprite))
			{
				trace("碰撞到了Rect A");
			}
			if(circle.hitTestPoint(200,200,true))
			{
				trace("碰到了坐标点(200,200))");
			}
		}
	}
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值