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