我正在使用cocos2d开发一款iphone游戏并将其设置为显示FPS。现在大多数时候应用程序将以60 fps的速度启动和运行,但有时显然是随机的,应用程序将以40 fps的速度启动和运行。
这种情况不会经常发生,并且似乎只有在您退出应用程序并尽快重新启动时才会发生,尽管这不会在大多数情况下触发效果。但经过一些快速退出重启序列后,游戏最终会启动并且只有40 fps而不是正常60.如果我此时退出应用程序并等待大约3秒钟,它将再次以正常的60 fps开始。
我假设这与应用程序无法在重新启动之前释放所有内存有关,这个问题似乎与iPhone OS有关。
重要的是要注意,如果我退出应用程序等待5秒并重新启动,这种情况永远不会发生。以前有没有人遇到过这种问题?有关为什么会发生这种情况的任何想法?。
答案 0 :(得分:2)
如果有人想知道这是因为在iPhone 3GS / iPod Touch 3G中模拟OPEN GL 2.0时曾经存在一个错误,那么OS 3.1已经修复了这个问题。您需要做的就是:
// Try to use CADisplayLink director
// if it fails (SDK < 3.1) use Threaded director
if( ! [Director setDirectorType:CCDirectorTypeDisplayLink] )
[Director setDirectorType:CCDirectorTypeThreadMainLoop];