如何做一个可以穿透的点击事件

看到好多游戏 都有 点击屏幕的 提示动画
应该是在屏幕最上层 加一个 层来处理点击,获取坐标 播放动画
那点击事件如何处理,让这个点击事件 继续向下传播到 真正的游戏世界去?

emit带参数传递到 需要接收的地方监听一下

我的意思是 顶层是全屏的NODE,他最先接收到点击事件,然后在让点击事件继续向下层穿透,如果下层正好有个按钮,那这个按钮应该要响应的!

以前用cocos c++时 有个 事件吞噬 方法,可以选择不吞噬,那么 点击事件 还可以继续传递!不知道cocos creator有没有

按钮不多的话,在顶层接受点击事件获取全局坐标,遍历一下按钮,检测点击坐标是否在按钮的boundingbox内,检测到了就触发对应按钮事件,顶层其他逻辑正常执行

或者放在最下层接受点击事件,按钮也接受点击事件,所有触发了点击的都发送全局坐标到顶层动画层上再播放动画,办法多的很

这个按钮接受点击后就不往下传递了
所以在最底层是接收不到 点击事件的!


自己去试一下吧,我说的两个方法都可以

风车就是动画效果

你的方法是 点击后 最顶层处理点击(播一个动画)然后发一个自定义事件?然后在按钮上接收自定义事件?
或者反过来,但要所有按钮都接收自定义事件,或者所有按钮都发送一个自定义事件?

这个,,,不太行啊!

this.node._touchListener.swallowTouches = false;
是这个东东不

1赞

1赞

多谢,就是他!!!

多谢啦!就是这个 嘿嘿!

很显然,引导的点击通常不是这么实现的。点击事件全部在最上层(引导层)通过自定义 button 处理,处理时发指令带参数(命令模式),各个可能触发引导的逻辑单元实现引导代理接口,逻辑单元通过事件相关的机制去通知引导进度。
可以参看万国觉醒的做法。

听起来很麻烦的样子

你说的是 新手指引 ?

请问一下,为什么我这样写了没有效果啊

你得保证这个常驻节点在最上面

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。