Java 游戏中Android上的正确触摸输入处理

Java 游戏中Android上的正确触摸输入处理,java,android,architecture,input,Java,Android,Architecture,Input,事实上,我非常熟悉在Android中处理触摸事件。然而,我现在已经硬编码了一切。我指的是很多比较,比如if(e.getX()你的游戏可能在另一个线程上有一个主循环,因为在Android中你应该远离事件线程。如果是这样,我会设置一个单独的InputBuffer类来接收和存储传入的触摸事件。当我这样做时,InputBuffer是Surfa的OnTouchListenerceView 当有一个传入事件时,InputBuffer只是复制它并返回。这使事件线程保持空闲并有助于防止s 然后在主循环中,需要了

事实上,我非常熟悉在Android中处理触摸事件。然而,我现在已经硬编码了一切。我指的是很多比较,比如
if(e.getX()你的游戏可能在另一个线程上有一个主循环,因为在Android中你应该远离事件线程。如果是这样,我会设置一个单独的
InputBuffer
类来接收和存储传入的触摸事件。当我这样做时,
InputBuffer
Surfa的
OnTouchListener
ceView

当有一个传入事件时,
InputBuffer
只是复制它并返回。这使事件线程保持空闲并有助于防止s

然后在主循环中,需要了解用户输入的游戏对象可以访问
InputBuffer
,以便获得有关存储事件的信息。这会将您的输入处理代码移出视图,并移入更有意义的游戏对象


根据游戏的速度,您可能还需要设置一个块,以便传入事件不会在游戏对象更新时更新存储副本。相反,存储副本会在主循环更新后更新,这样所有游戏对象都会处理同一事件。

不太清楚您在问什么。您的意思是你不想在游戏对象或HUD的代码中测试屏幕坐标吗?我不想在我的View类中处理所有事情。我不知道我应该存储多个x-y变量,还是完整的touchEvent对象。或者我应该将它传递到一些东西上,比如对象或某个TouchHandler类?我正在寻找一个通用的、最有用的处理输入的方法,也适用于hud。与其创建InputBuffer类,在视图的类中创建getter和setter不是同样容易吗?