Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Cocos2d:CCMenu项在恢复应用程序后对触摸不响应_Objective C_Ios_Cocos2d Iphone - Fatal编程技术网

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]都会导致输入问题

如果你想继续比赛

  • 不要替换场景
  • 推/弹出另一个场景
  • 编写代码以保存场景状态并将其还原

您能为暂停和恢复方法等添加一些代码吗?我认为您完全正确。我最初试着弹出这个场景,但我弹出的只是一个黑屏。我决定寻找另一种方法,而不是找出为什么屏幕是黑色的。我要回去想办法弄清楚。顺便说一句,我总是推荐你的书作为开始学习cocos2d的最佳方式。