Objective c Cocos2d:CCMenu项在恢复应用程序后对触摸不响应
我有一个暂停按钮,它是一个Objective c Cocos2d:CCMenu项在恢复应用程序后对触摸不响应,objective-c,ios,cocos2d-iphone,Objective C,Ios,Cocos2d Iphone,我有一个暂停按钮,它是一个CCMenuItem,当我触摸它时,应用程序会进入菜单。我将游戏场景设置为菜单场景上的静态变量,以便在恢复游戏时可以恢复当前游戏 当我按下恢复按钮时,我重新安排游戏场景的更新,并用静态游戏场景替换场景。暂停按钮位于游戏场景拥有的层上 当游戏继续时,暂停按钮在那里,但对我的触摸没有反应。我试着用OneNet来做resumeSchedulerAndActions,但什么也没做 我想出了一个让人感觉不舒服的解决方案,那就是在oneter中创建我的菜单,然后在onExit中删除
CCMenuItem
,当我触摸它时,应用程序会进入菜单。我将游戏场景设置为菜单场景上的静态变量,以便在恢复游戏时可以恢复当前游戏
当我按下恢复按钮时,我重新安排游戏场景的更新,并用静态游戏场景替换场景。暂停按钮位于游戏场景拥有的层上
当游戏继续时,暂停按钮在那里,但对我的触摸没有反应。我试着用OneNet来做resumeSchedulerAndActions,但什么也没做
我想出了一个让人感觉不舒服的解决方案,那就是在oneter
中创建我的菜单,然后在onExit
中删除它
我错过什么了吗?有没有办法让我的菜单再次响应触摸?您可以使用
CCDirector
的popsecene
从游戏场景中弹出菜单场景。你可能不必自己安排日程。要使其工作,暂停按钮必须首先按下场景堆栈上的场景,而不是使用replaceSecene
知道什么是骇客吗?将场景保持在静态变量中。如果你替换了一个场景,你应该放弃它。Cocos2d无法正确处理对使用同一对象替换场景的多个调用。无论是这样,还是覆盖onEnter而不调用[super onEnter]都会导致输入问题
如果你想继续比赛
- 不要替换场景
- 推/弹出另一个场景
- 编写代码以保存场景状态并将其还原