2

私は、 opengl を使用して 3D グラフィックスを簡単にレンダリングするhttp://www.jpct.net/を使用して、Android 3D ゲームを作成しようとしています。

私の質問は、3D フレームワークを使用してゲーム状態の更新メソッドを作成するにはどうすればよいですか?

Android Activity クラスには、glsurface ビューの使用を伴う次のコマンドがあることを知っています。

protected void onCreate(Bundle savedInstanceState) {
}

@Override
protected void onPause() {
}

@Override
protected void onResume() {
}

@Override
protected void onStop() {
}

public boolean onTouchEvent(MotionEvent me) {

}

次に、GLSurfaceView.Renderer クラスにはこれらのメソッドがあります。

class MyRenderer implements GLSurfaceView.Renderer {


    public MyRenderer() {
    }

    public void onSurfaceChanged(GL10 gl, int w, int h) {
    }

    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
    }

    public void onDrawFrame(GL10 gl) {
    }
}

jpct チュートリアルを使用して画像を描画し、それらに応答し、フレーム レートを計算することはできますが、onTouchEvent でユーザー入力チェックを処理するため、更新メソッドを呼び出したり、ほぼ一定のフレーム レートを確保する方法はありません。メソッド、画面に触れていないときに更新する必要がある私のゲーム。

onDrawFrame メソッドで更新メソッドが呼び出されて処理されるようにする方法について、誰かアドバイスはありますか? update を呼び出す 2 番目のスレッドを生成する必要があると思いますが、onDrawFrame メソッドと適切に同期されることを保証する方法がわかりません。これを処理する方法について誰かアドバイスはありますか?

4

1 に答える 1

0

とにかく、onDrawFrame() は Android によって呼び出されます。ゲームロジックをそのメソッドに入れるだけです。ゲーム ロジックとレンダリングの間で同期の問題が発生するため、これを行うために別のスレッドを使用しないでください。

于 2012-04-17T08:49:27.667 に答える