2

我正在使用 cocos2d 开发一个 iphone 游戏并将其设置为显示 FPS。现在大多数情况下应用程序将以 60 fps 的速度启动和运行,但显然有时应用程序会随机启动并以 40 fps 的速度运行。

这种情况不会经常发生,而且似乎只有在您退出应用程序并尽快重新启动时才会发生,尽管这在大多数情况下都不会触发效果。但经过几次快速退出-重启序列后,游戏最终开始并且只有 40 fps 而不是正常的 60 fps。如果我此时退出应用程序并等待大约 3 秒,它将再次以正常的 60 fps 开始。

我假设这与应用程序在重新启动之前无法释放所有内存有关?这个问题似乎与 iPhone OS 有关。

重要的是要注意,如果我退出应用程序等待 5 秒并重新启动,这永远不会发生。以前有没有人遇到过这种问题?关于为什么会发生这种情况的任何想法?

4

1 回答 1

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];
于 2010-01-27T15:11:35.480 回答