ActionScript
TypeScript
JavaScript

碰撞检测

发布时间:2017-01-21

Sprite提供了一个hitTestPoint函数用于判断某个全局坐标的点是否在Sprite的碰撞区域之内。

代码示例:

package  
{
	import laya.display.Sprite;
	import laya.display.Text;
	import laya.events.Event;
	/**
	 * ...
	 * @author ww
	 */
	public class HitTestPointSample 
	{
		private var text:Text;
		private var sprite:Sprite;
		private var mouseSp:Sprite;
		public function HitTestPointSample() 
		{
			Laya.init(1000, 900);
			test();
		}
		
		private function test():void
		{
			text = new Text();
			Laya.stage.addChild(text);
			text.color = "#00ff00";
			text.fontSize = 30;
			Laya.stage.addChild(text);
						
			sprite = new Sprite();
			sprite.size(200, 200);
			sprite.graphics.drawRect(0, 0, sprite.width, sprite.height, "#ff0000");
			sprite.pos(100, 100);
			Laya.stage.addChild(sprite);
			
			mouseSp = new Sprite();
			mouseSp.graphics.drawCircle(0, 0, 5, "#00ff00");
			Laya.stage.addChild(mouseSp);
			
			Laya.stage.on(Event.MOUSE_MOVE, this, onMouseMove);
		}
		private function onMouseMove():void
		{
			//画出当前鼠标的位置
			mouseSp.pos(Laya.stage.mouseX, Laya.stage.mouseY);
			//判断当前鼠标是否在sprite内部
			text.text = "Mouse:" + Laya.stage.mouseX + "," + Laya.stage.mouseY + " isHit:" + sprite.hitTestPoint( Laya.stage.mouseX,Laya.stage.mouseY);
		}
	}

}

鼠标在显示对象内部的截图

blob.png

鼠标在显示对象外部的截图

blob.png