5

私の過去のすべてのiOSゲームでは、1つのビューコントローラー、.hファイルおよび.mファイルを備えた単純なビューベースのアプリケーションとしてゲームをセットアップしました。NSTimerメインランループと呼ばれる30、40、または60フレーム/秒のセットを設定しました。開発の後半では、ラグを減らすために、グラフィックの更新(FPSが高い場合)とゲームの計算(FPSが低い場合)を分割しました。グラフィックと計算は相互に依存しているため、ゲームでマルチスレッド/同時実行を実装する方法を理解していませんでした...

「本物の」ゲームのソースコードを読む機会がなかったとすると、それを合理的な方法で設定しているのでしょうか、それともゲームのメインフレームワークと実行ループに対してまったく間違ったアプローチを取っているのでしょうか。

私のアプリはAppStoreの他のアプリと比べてかなり遅れていることに気付いたので、これを尋ねます(たとえば、私のアプリはiPhone 3Gでひどく遅れますが、Doodle Jump、Fruit Ninja、CuttheRopeなどは実行されます比較的スムーズ)。

4

1 に答える 1

9
  1. 実行ループにNSTimerの代わりにCADisplayLink使用したい。
  2. GPUでできるだけ多くの描画を行いたいと考えています。これによりCPUサイクルが解放され、ハードウェアは現在ソフトウェアで実行している多くの計算を高速化します。これを行うには、OpenGLでスプライトをOpenGLテクスチャとして描画します。Cocos2Dのようにあなたのためにこれを行うライブラリがあります。Cocos2Dは、スプライトを作成およびアニメーション化するためのシンプルなAPIを提供し、すべてのOpenGLを内部で実行するため、必要はありません。
于 2012-04-10T02:42:26.323 に答える