0

我有一个 UISplitviewController 应用程序,其结构类似于此问题中的图片:

带有情节提要的 iPad 上的 UISplitViewController?

当我点击游戏 #1 或游戏 #2 时,它们各自的游戏就会运行。但是,如果我单击第二个游戏(#1 或#2),我会收到此错误:

由于未捕获的异常而终止应用程序
'NSInternalInconsistencyException',原因:'你不能运行一个场景
如果另一个场景正在运行。改用 replaceScene 或 pushScene '

如何检查是否已经存在 Cocos2d 场景并在单击第二个游戏时替换它?理想情况下,我认为我应该让两个游戏都运行,以便用户可以点击返回到另一个游戏。这可能吗?

我试图简单地替换这一行:[director runWithScene:scene];

用这一行:[director replaceScene:scene];

不幸的是,我在方法中收到错误 CCTextureAtlas.m:

-(void)drawNumberOfQuads:(NSUInteger)n fromIndex:(NSUInteger)开始{...}

在此处输入图像描述

[更新]

我想我可能需要停止现场,以便正确清理所有内容。例如,当我单击帮助屏幕时,我的控制器的 viewWillDisappear 会被调用。在 Cocos2d 视图控制器之间切换时不会发生这种情况。


遵循这些说明,并且只创建一次 EAGLView 后,我几乎可以正常工作,但是第二个场景出现黑屏。请注意,我确实简要地看到了新场景。

4

1 回答 1

0

如何检查是否已经存在 Cocos2d 场景并在单击第二个游戏时替换它?

if ([[CCDirector sharedDirector] runningScene] == nil) {
        [[CCDirector sharedDirector] runWithScene:sceneToRun];
    } else {
        [[CCDirector sharedDirector] replaceScene:sceneToRun];
    }
于 2012-05-22T14:59:26.173 回答