我正在编写一个具有多个级别的 iPhone 游戏。在游戏过程中,用户可以使用菜单退出游戏并返回关卡选择屏幕。为此,我使用带有一系列 UIViewController 的 UINavigationController。当玩家选择退出时,从堆栈中弹出游戏视图并显示关卡选择菜单。游戏第一次运行良好,但如果玩家退出关卡然后尝试玩相同或另一个关卡,这会导致问题。
游戏视图控制器(显示 cocos2d 场景)是游戏控制器单例的成员变量。当用户单击“再次播放”时,此游戏控制器会重置游戏状态。cocos2d 层被清除,游戏被重置为初始状态。在此之后,游戏视图再次被压入堆栈。然而这次 cocos2d 没有更新。屏幕只是上一个游戏冻结的最后一帧。
似乎由于某种原因,当 cocos2d 视图被弹出然后推送它时,即使我使用它也会停止更新:
[[CCDirector sharedDirector] resume];
有没有人有这个问题的经验以及如何避免它?