[Egret][文档]碰撞检测

本文详细介绍了在Egret引擎中实现碰撞检测的方法,包括矩形碰撞检测和像素碰撞检测。通过hitTestPoint()方法,开发者可以判断显示对象是否与指定点相交,这对于游戏开发中的角色互动和障碍物碰撞等场景至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

——碰撞检测,判断显示对象是否与一点相交。

一、矩形碰撞检测

——矩形碰撞检测,是判断显示对象的包围盒是否与一点相交 。

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;

 

转载于:https://www.cnblogs.com/shenjie0507/p/10133427.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值