iPhone 3GS OpenGL奇怪的bug

时间:2009-12-02 07:59:54

标签: iphone opengl frame-rate

我正在使用OpenGL ES 1.1为iPhone和iPod Touch开发2D游戏。在iPhone,iPhone 3G和所有iPod Touch型号上一切正常。游戏通常会将场景渲染到60 FPS。

这也发生在iPhone 3GS上,但有时(完全随机)3GS将帧速率降低到40 FPS左右,动画似乎不稳定。如果用户锁定手机并从睡眠模式恢复,也会发生这种情况。

我认为它与NSTimer有关,因为如果我将绘图触发模式更改为SDK 3.1+提供的新CADisplayLink类,所有设备上的一切都正常......以及3GS上也是如此。

我不知道如何解决这个问题,我不想发布我的应用3.1+限制。还有很多用户使用3.0设备。

任何有iPhone 3GS问题的人呢?如果是这样,请帮我解决一下。

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用这两个库,并在3.0或3.1设备上获得最佳结果。 这很好,因为AppStore使用的iPhone OS最低版本包含在应用程序的Info.plist文件中。

使用Apple的UI Device Class Reference

中的以下代码可以转换iPhone OS版本
float iPhoneOSVersion = [[[UIDevice currentDevice] systemVersion] floatValue];

if ( iPhoneOSVersion >= 3.1 ) {
    useNewerFramework();
} else {
    useOlderFramework();
}

但是,您还应确保将Xcode中的部署目标设置为3.0或任何您希望运行的最低版本。