我该怎么做?

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

然而,在我第一次"关闭"场景后,整个应用程序对所有触摸事件的反应要慢得多。只要场景打开,它就能快速工作,但是当关闭时,性能就会下降。

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

有帮助吗?

解决方案

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top