7

OpenGL を使用して、Android でゲームのスケルトンを作成しようとしています。メインのゲーム ループ コードをどこに配置すればよいですか?

これまでのところ、私の最良の候補は Renderer.onDrawFrame(...) メソッドで、これはフレームごとに呼び出されるようです。そのため、コードは次のようになります。

void onDrawFrame(GL10 gl) 
{
     preLoopActions();

     m_gameScene->onUpdate();
     m_gameScene->onRender(gl);

     postLoopActions();
}

より良いアプローチはありますか?私はこれが嫌いです。1) Android がレンダリングすることを期待している場所で、更新とレンダリングを混在させる必要があり、2) このメソッドは別の「レンダリング スレッド」から呼び出されているように見え、ゲームの複雑さが増します。

4

2 に答える 2

2

数学と描画ロジックを分離します。必要なのは、そのループ内に実行ループを持つスレッドを作成し、math()部分を実行し、それが機能しているときにrender()部分を呼び出すことです。これには、ループのタイミングを制御するためのいくつかの手法があります。

于 2010-11-03T19:10:56.193 に答える
1

AndEngineのようなフレームワークを使用することを検討しましたか。これには GameActivity と呼ばれるものがあり、これにより生活が非常に楽になります。例は非常に簡単に理解できます。

于 2010-10-22T09:17:34.060 に答える