【问题标题】:iPhone 3GS OpenGL strange bugiPhone 3GS OpenGL 奇怪的bug
【发布时间】:2009-12-02 07:59:53
【问题描述】:

我正在使用 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 时也遇到此问题?如果是这样,请帮助我解决问题。

谢谢!

【问题讨论】:

  • 我也遇到了同样的问题......让自己疯狂地试图解决它。希望这有效!

标签: iphone opengl frame-rate


【解决方案1】:

您可以使用这两个库并在 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 或您希望在其上运行的任何最低版本。

【讨论】:

  • 你在 3GS 上是否也遇到过同样的问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多