GameLoop检查输入(Android/GlSurfaceView)

GameLoop检查输入(Android/GlSurfaceView),android,input,touch-event,glsurfaceview,game-loop,Android,Input,Touch Event,Glsurfaceview,Game Loop,如果我在一个线程中有一些基本的游戏循环,比如: public void run(){ getInput(); //onTouchEvent method is only available in view class. updateState(); renderScreen(); } 我想知道如何实际检查输入(触摸屏ie)。我知道我可以在视图类中使用onTouchEvent(),但我想从游戏循环中检查它。这是怎么做到的 ps:我正在使用android和GLSU

如果我在一个线程中有一些基本的游戏循环,比如:

public void run(){
    getInput(); //onTouchEvent method is only available in view class.
    updateState();
    renderScreen();     
}
我想知道如何实际检查输入(触摸屏ie)。我知道我可以在视图类中使用onTouchEvent(),但我想从游戏循环中检查它。这是怎么做到的


ps:我正在使用android和GLSURFACHEVIEW。

通常我会复制UI线程中的输入事件,并以线程安全的方式将其提供给游戏线程


您可以使用libgdx的输入实现作为一种好方法。

问题是,一旦UI线程从onTouchEvent返回,您收到的事件可能会被下一个事件覆盖。因此,在你的游戏准备好使用数据之前,你需要复制数据。这完全取决于你和你的游戏需要。创建您自己的输入事件并复制原始Android事件的数据。您的意思是将MotionEvent存储为变量,然后使用将其传递给gameloop?由于上述原因,您无法存储MotionEvent,但可以存储其x和y值。