0

加速度計を使用する IOS ゲームがあります。私のゲームは 60 fps という良好な速度でレンダリングされますが、加速度計からの入力が遅れています。たとえば、ゲームを左に傾けた後、ゲームが応答するまでに 1 秒かかります。タッチ イベントでも同じことが起こり、遅延は約 1 秒の場合もあります。

私のゲームのレンダリング ループは次のようになります。

procedure RenderFrame

    switch to "SpaceShips" texture

    for each bad guy
        update his location
        render to OpenGLES
    end loop

    update good guy location
    render him to OpenGLES

    switch to "Particles" texture

    for each particle
        update the location
        render to OpenGLES
    end loop

end RenderFrame

私には、これは次の質問に似ています。

OpenGL ES 2.0 iPhone - バックグラウンド スレッド ブロックのメイン スレッドでのレンダリング

これは、メイン スレッドがブロックされているように聞こえますが、同時実行のメリットはありますか? メソッド全体を別のバックグラウンド スレッドに移動するだけで、メイン スレッドのブロックを削除できますか。それとも、同時実行を実現するために、上記のメソッドをより細かく書き直す必要がありますか? 可能であれば、メイン スレッドのブロックを緩和するために最小限の同時実行を実行したいと考えています。

4

0 に答える 0