Cocos2d:CCMenu项目在恢复申请后没有响应触摸

时间:2012-12-19 20:40:00

标签: objective-c ios cocos2d-iphone

我有一个CCMenuItem暂停按钮,当我触摸它时,应用程序会进入菜单。我将游戏场景设置为菜单场景中的静态变量,这样当我恢复游戏时,我可以恢复当前的游戏。

当我按下继续按钮时,我重新安排了游戏场景的更新,并用静态游戏场景替换了剧情。暂停按钮位于游戏场景拥有的图层上。

当游戏继续时,暂停按钮就在那里,但不响应我的触摸。我尝试使用onEnter来执行resumeSchedulerAndActions但没有。

我想出了一个感觉很难的解决方案,即在onEnter中创建我的菜单并在onExit中将其删除。

我错过了什么吗?有没有办法让我的菜单再次响应触摸?

2 个答案:

答案 0 :(得分:1)

您可以使用popScene CCDirector来弹出游戏场景中的菜单场景。您可能不必自行安排。为此,暂停按钮必须首先在场景堆栈上推送场景,而不是使用replaceScene

答案 1 :(得分:1)

你知道什么是hacky?将场景保存在静态变量中。如果你替换一个场景,你应该放弃它。 Cocos2d不能正确处理对相同对象的replaceScene的多次调用。要么是这个,要么重写onEnter而不是调用[super onEnter]会导致输入问题。

如果你想继续比赛,

  • 不要替换场景
  • 推送/弹出其他场景
  • 编写代码以保存场景的状态并将其恢复