问题:游戏界面层吞噬了触摸事件,而无法响应towerHolderMenu的点击事件。
原本代码
_eventDispatcher->addEventListenerWithSceneGraphPriority(m_sceneTouchListen, pLayer);
通过SceneGraph注册事件,会把pLayer加到接收消息node的vector里,在响应时,会遍历vector来进行响应,遍历的条件是touch位置落在该node的范围内判断击中。我们的游戏界面layer是全屏的,所以一定会判断成功,不会继续传递事件。
改为_eventDispatcher->addEventListenerWithFixedPriority(m_sceneTouchListen, THIS_EVENT_PRIO);之后,该事件不会绑定到GAME_UI_LAYER上,所以可以成功传递到下层layer,能够被towerHolderMenu响应。