2012-04-16 9 views
2

私はhttp://www.jpct.net/を使ってアンドロイド3Dゲームを作成しようとしていますが、これはOpenGLを使って3Dグラフィックスを簡単にレンダリングします。アンドロイド3Dゲームフレームワークの更新方法を作成するには?

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

私は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チュートリアルを使用し、それらに対応し、フレームレートを計算することができていますが、それはupdateメソッドを呼び出していないか、それが処理されるためほぼ一定のフレームレートを確保するための方法を持っていますonTouchEventメソッドでのユーザー入力チェック、画面に触れていないときに更新が必要なゲームです。

誰かが、更新メソッドが確実に呼び出され、onDrawFrameメソッドで処理されるようにする方法について助言していますか?私は更新を呼び出す2番目のスレッドを生成する必要がありますが、私はそれがonDrawFrameメソッドと適切に同期していることを保証する方法を知らないでしょう。誰にもこれをどう扱うべきかアドバイスはありますか?

答えて

0

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

+0

私は別々のスレッドを持っていて、GLThread(1つの 'onDrawFrame'が呼び出されています)と自分のスレッドの1つの間で同期をとるまで動作しました:http://stackoverflow.com/questions/11639734/synchronized-with -glthread-in-android –

関連する問題