——碰撞检测,判断显示对象是否与一点相交。
一、矩形碰撞检测
——矩形碰撞检测,是判断显示对象的包围盒是否与一点相交 。
Egret 提供 hitTestPoint()
方法进行碰撞检测,矩形碰撞检测的用法为:
var isHit:boolean = shp.hitTestPoint( x: number, y:number );
shp
是待检测的显示对象,(x, y)是待检测的点的位置。如果发生碰撞,则方法返回 true
,如果没有发生碰撞,则返回 false
。
二、像素碰撞检测
——像素碰撞检测,是判断显示对象的图案(非透明区域)是否与一点相交。同样使用 hitTestPoint()
方法,用法为:
var isHit:boolean = shp.hitTestPoint( x: number, y:number, true:boolean );
相比于矩形碰撞检测,增加了第三个参数 true
,表示要使用像素碰撞检测。
var shp:egret.Shape = new egret.Shape(); shp.graphics.beginFill( 0xff0000 ); shp.graphics.drawCircle( 0, 0, 20); shp.graphics.endFill(); shp.width = 100; shp.height = 100; this.addChild( shp ); var isHit:boolean = shp.hitTestPoint( 25, 25, true ); this.infoText.text = "isHit: " + isHit;