const { ccclass, property } = cc._decorator;
//挂载到Canvas
@ccclass
export default class touchCheck extends cc.Component {
@property(cc.PolygonCollider)
PolygonBtnCollider: cc.PolygonCollider = null;
start() {
this.node.on(cc.Node.EventType.TOUCH_START, this.onTouchStart, this);
//显示PolygonCollider范围 可注释掉
const manager = cc.director.getCollisionManager();
manager.enabled = true;
manager.enabledDebugDraw = true;
// manager.enabledDrawBoundingBox = true;
}
onTouchStart(event) {
if (event._touches == undefined) {
return;
}
const node = this.PolygonBtnCollider.node;
if (!node.active) return;
let collider = this.PolygonBtnCollider;
if (!collider) return;
let points = collider.points;
let touchPos = event.getLocation();
let pos = node.convertToNodeSpaceAR(touchPos);
let isIn = cc.Intersection.pointInPolygon(pos, points)
if (isIn) {
//在范围里,处理点击事件
this.onClick();
}
else {
console.log("点击了图像外面")
}
}
onClick() {
console.log("点击了图像里面")
}
}
【cocos creator】【TS】监听不规则按钮点击事件,判断点在不规则区域内
于 2024-04-19 17:12:26 首次发布