2012-04-16 59 views
2

我一直在嘗試使用http://www.jpct.net/來創建一個使用opengl輕鬆渲染3D圖形的Android 3D遊戲。如何爲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方法處理?我認爲這將涉及生成第二個線程調用更新,但我不知道如何保證它與onDrawFrame方法正確同步。有沒有人有任何建議如何處理?

回答

0

onDrawFrame()將搭載Android反正叫。只需將你的遊戲邏輯放入該方法即可。你不應該使用另一個線程來做到這一點,因爲你會遇到遊戲邏輯和渲染之間的同步問題。

+0

我有單獨的線程,它的工作,直到我想在GLThread(一個'onDrawFrame'被調用)和我自己的線程之一同步:http://stackoverflow.com/questions/11639734/synchronizedwith -glthread功能於安卓 – 2012-07-24 21:43:04