代码之家  ›  专栏  ›  技术社区  ›  Oscar Gomez

应用程序启动时COCS2D会随机下降fps?

  •  2
  • Oscar Gomez  · 技术社区  · 15 年前

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

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

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

    重要的是要注意,如果我退出应用程序,等待5秒钟然后重新启动,就不会发生这种情况。以前有人遇到过这种问题吗?.你知道为什么会发生这种事吗?.

    1 回复  |  直到 10 年前
        1
  •  2
  •   Oscar Gomez    15 年前

    如果有人想知道这是因为在模仿iPhone3GS/iPod touch 3G中的开放式GL2.0时,曾经有过一个bug,那么这个bug已经针对OS3.1进行了修复。你要做的就是:

    // Try to use CADisplayLink director
    // if it fails (SDK < 3.1) use Threaded director
    if( ! [Director setDirectorType:CCDirectorTypeDisplayLink] )
        [Director setDirectorType:CCDirectorTypeThreadMainLoop];