我正在玩游戏循环和主动渲染(使用SurfaceView和SurfaceHolder.Callback)。
我想知道如何与定时事件和触摸事件管理一起工作。 定时事件就像每个xx ms发生的事情,每个yy ms发生一些不同的事情。 触摸管理是在向下,向上和移动时更新游戏和屏幕。
我做过几次尝试,但看起来有点尴尬,游戏表现不佳......
一方面我有一个经典的游戏循环(在单独的线程中): 在运行更新,渲染,绘制,睡眠时
现在我不知道如何使用计时器循环来完成这项工作。我使用了处理程序方法 - 创建扩展处理程序的类,在handleMessage中执行它们必须执行的操作,然后使用sendMessageDelayed调用它们。
他们只是更新游戏状态。生成的更改的呈现将在gameLoop中完成。
这种方法需要同步更新游戏环,而不是更新计时器。
而且 - 除此之外,我需要处理触摸事件 - 向下,向上和移动! 我的方法就像在计时器中一样,只是更新游戏状态,并将其留在循环中以便正确处理和显示。
我不知道我是否可能在完全错误的道路上,对Androd说道,并且就像我认为“可以工作”一样。
例如,我不确定是否有必要在单独的线程中进行游戏循环。我认为是根据特定帧率显示触摸处理(移动)的结果。
另一方面,我可以离开循环并在每次定时更新后告诉绘制,并在每次触摸处理后,但这也不能正常工作。
问题是这种游戏的一般方法是什么? (定时循环/触摸事件(移动),必须连续渲染到屏幕)。
提前致谢。