1

我该怎么做呢?

在我的一个 UIViews(nib 文件)上,我有 ImageView 和一个启动全屏 Cocos2d 场景的按钮。从该场景中,我想关闭它并返回 UIView,以便用户稍后可以再次打开场景,但可以从 ImageView 中的不同图像(以及场景中的不同内容)。

但是,在我第一次“关闭”场景后,整个应用程序对所有触摸事件的反应都慢了很多。只要场景打开,它就可以快速运行,但关闭时性能会下降。

我应该如何正确关闭场景以便重新启动它?我浏览了很多代码示例,到处都是replaceWithScene:newScene.

4

1 回答 1

0

将 UIView 添加到包含正在运行的 openGL 层的 viewController 会降低应用程序的速度,任何尝试将 UIScrollView 合并到 Cocos2D 游戏中的人都会告诉你。您正在关闭场景,但可能不会停止 CCDirector,它现在在应用程序的调度程序之外运行自己的调度程序。当他们争夺 CPU 的主导权时,OpenGL 总是获胜,因为它需要更多的功率。

确保您完全关闭 cocos2D 和 OpenGL。即使只调用 [[CCDirector sharedDirector] pause]。

于 2011-08-16T04:53:50.817 回答