上周做了一个游戏新手引导,规则是 在游戏上添加遮罩,圈中的地方点击会穿透到相应的按钮上,其余部分 阻止穿透,本人级别低,没做出来,请教了一下公司的大神,不过代码依然没看懂,但是能用
脚本代码如下
cc.Class({ extends: cc.Component, properties: { circleNode: {displayName: "圈圈", default: null, type: cc.Node}, _isCatchTouch: true, }, onLoad() { this.node.width = this.node.height = 10000; this.node.on(cc.Node.EventType.TOUCH_START, this.onTouchBg, this); }, onTouchBg(event) { let point = event.getLocation(); let retWord = this.circleNode.getBoundingBoxToWorld(); let space = 40; retWord.width -= space; retWord.width = retWord.width <= 0 ? 0 : retWord.width; retWord.height -= space; retWord.height = retWord.height <= 0 ? 0 : retWord.height; if (retWord.contains(point)) { this.node._touchListener.setSwallowTouches(false); } else { this.node._touchListener.setSwallowTouches(true); } }, });
CocosCreator 引擎中 层级编辑器 和场景编辑器 如下图
使用规则是: 新建一个maskNode节点 为此节点添加js脚本 测试结果是 点击button 有相应 点击2(也是一个button) 不响应