具有计时器和触摸事件(移动)处理的Android游戏的方法

时间:2011-07-10 09:32:38

标签: android handler ontouchevent game-loop

我正在玩游戏循环和主动渲染(使用SurfaceView和SurfaceHolder.Callback)。

我想知道如何与定时事件和触摸事件管理一起工作。 定时事件就像每个xx ms发生的事情,每个yy ms发生一些不同的事情。 触摸管理是在向下,向上和移动时更新游戏和屏幕。

我做过几次尝试,但看起来有点尴尬,游戏表现不佳......

一方面我有一个经典的游戏循环(在单独的线程中): 在运行更新,渲染,绘制,睡眠时

现在我不知道如何使用计时器循环来完成这项工作。我使用了处理程序方法 - 创建扩展处理程序的类,在handleMessage中执行它们必须执行的操作,然后使用sendMessageDelayed调用它们。

他们只是更新游戏状态。生成的更改的呈现将在gameLoop中完成。

这种方法需要同步更新游戏环,而不是更新计时器。

而且 - 除此之外,我需要处理触摸事件 - 向下,向上和移动! 我的方法就像在计时器中一样,只是更新游戏状态,并将其留在循环中以便正确处理和显示。

我不知道我是否可能在完全错误的道路上,对Androd说道,并且就像我认为“可以工作”一样。

例如,我不确定是否有必要在单独的线程中进行游戏循环。我认为是根据特定帧率显示触摸处理(移动)的结果。

另一方面,我可以离开循环并在每次定时更新后告诉绘制,并在每次触摸处理后,但这也不能正常工作。

问题是这种游戏的一般方法是什么? (定时循环/触摸事件(移动),必须连续渲染到屏幕)。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您是否阅读过Using Input Pipelines In Your Android Game?它为您处理输入的问题提供了解决方案。