2011-07-01 54 views
3

檢查如果我有一些基本的遊戲循環中的一個線索,這樣的:GameLoop輸入(安卓/ GlSurfaceView)

public void run(){ 
    getInput(); //onTouchEvent method is only available in view class. 
    updateState(); 
    renderScreen();  
} 

我不知道如何來實際檢查輸入(即觸摸屏)。我知道我可以在視圖類中使用onTouchEvent(),但我想從我的遊戲循環中檢查它。這是如何完成的?

ps:我正在使用Android與GlSurfaceView。

回答

2

通常我會將輸入事件複製到UI線程中,並以線程安全的方式將它們提供給遊戲線程。

您可以使用libgdx的輸入實現作爲好的example

+0

問題是,一旦UI線程從onTouchEvent返回,您收到的事件可能會被下一個事件覆蓋。所以爲了保持數據直到你的遊戲準備好使用它,你需要複製它。 – mibollma

+0

這完全取決於你和你的遊戲需求。創建您自己的輸入事件並複製原始Android事件中的數據。 – mibollma

+0

所以,你的意思是將MotionEvent作爲變量存儲,並將其傳遞給gameloop? – usealbarazer