3

OpenGLES1.1を使用してiPhoneおよびiPodTouch用の2Dゲームを開発しています。iPhone、iPhone 3G、およびすべてのiPodTouchモデルですべてが正常に機能します。ゲームは通常、シーンを最大60FPSでレンダリングします。

これはiPhone3GSでも発生しますが、(完全にランダムに)3GSがフレームレートを約40 FPSに下げ、アニメーションが途切れる場合があります。これは、ユーザーが電話をロックしてスリープモードから再開した場合にも発生します。

描画トリガーモードをSDK3.1以降で利用可能な新しいCADisplayLinkクラスに変更すると、すべてのデバイスですべてがOKになり、3GSでも問題がないため、NSTimerと関係があると思います。

この問題を解決する方法がわからないため、3.1以降の制限付きでアプリを投稿したくありません。3.0デバイスを使用しているユーザーはまだたくさんいます。

iPhone 3GSでもこの問題を抱えている人はいますか?もしそうなら、回避策を手伝ってください。

ありがとうございました!

4

1 に答える 1

2

両方のライブラリを使用して、3.0または3.1デバイスで最良の結果を得ることができます。AppStoreが使用するiPhoneOSの最小バージョンは、アプリケーションのInfo.plistファイルに含まれているため、これで問題ありません。

iPhone OSバージョンは、AppleのUIデバイスクラスリファレンスから次のコードを使用して取得できます。

float iPhoneOSVersion = [[[UIDevice currentDevice] systemVersion] floatValue];

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

ただし、Xcodeの展開ターゲットを3.0または実行する最小バージョンに設定していることも確認する必要があります。

于 2009-12-02T11:16:44.910 に答える