1

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

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

当游戏继续时,暂停按钮在那里,但对我的触摸没有反应。我尝试使用 onEnter 来做 resumeSchedulerAndActions 但没有。

我想出了一个感觉很笨拙的解决方案,即onEnteronExit.

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

4

2 回答 2

1

您可以使用popSceneCCDirector从游戏场景中弹出菜单场景。您可能不必自己安排时间。为此,暂停按钮必须首先将场景推送到场景堆栈上,而不是使用replaceScene.

于 2012-12-19T20:53:14.803 回答
1

你知道什么是hacky吗?将场景保存在静态变量中。如果你替换一个场景,你应该放手它。Cocos2d 不能正确处理多次调用 replaceScene 与同一对象。无论是这个,还是覆盖 onEnter 而不调用 [super onEnter] 都会导致输入问题。

如果你想继续游戏,要么

  • 不要替换场景
  • 推/弹出另一个场景
  • 编写代码来保存场景的状态并恢复它
于 2012-12-19T23:02:56.077 回答