安卓渲染线程和逻辑线程

3
在Android平台上,我应该如何将渲染与逻辑分开? 我可以使用基本的自定义线程类进行绘图,但我不知道在哪里放置逻辑更新。 经过一些研究,我认为最好使用两个不同的线程,一个用于渲染,另一个用于逻辑更新。 目前我所能想到的就是在同一个线程中使用onDraw来更新逻辑。 如果有教程或者对此有深入了解的指导,将不胜感激,谢谢。

你的意思是希望逻辑和渲染同时进行吗?这可能会在你的游戏中引起问题。 - prgmast3r
嗯,据我理解,当玩家按“上”键移动玩家/向前时,您将更新逻辑,并呈现更新后的图形/精灵位置。但是,更新逻辑的调用不应在渲染发生的同一线程中进行。 - semajhan
1
Semajhan,具有物理特性的游戏不仅仅是基于用户输入进行更新 - 它们还会根据经过的时间进行更新。 - Jo Jo
1个回答

2
我曾经开发过安卓市场上下载量最多的游戏之一,但那已经是两年前的事情了,所以这个解决方案可能已经过时。我做的是: - 使用View对象作为内容视图 - 重写该View对象类的draw()方法 - 在draw()方法的结尾处调用doLogic()
请注意,渲染和doLogic()调用都发生在主线程中。这听起来似乎不太好,但对于大多数游戏来说是可行的(而且无需变得复杂就能实现自动同步)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接