GameLoopThread在简单的Android游戏中,我如何执行并行线程?

时间:2011-10-22 19:11:05

标签: android multithreading android-layout

我正在开发一款安卓游戏,我需要一些关于多线程的帮助,因为我正在考虑它。我附上一张图片然后我可以解释我需要的东西。enter image description here 这只鸟在我的游戏中从左到右,从右到左完美地移动,同时移动她的羽毛作为两个图像使用,但我在某个时间运行代码,这将开始给蛋,例如鸟将飞行4分钟后每20秒它会掉落鸡蛋,现在鸡蛋将从上到下移动,我认为,将使用另一个游戏线程,我使用了GameLoopThread对象,SurfaceHolder保持表面, 我使用过此代码http://www.edu4java.com/androidgame/androidgame3.html 我可以让20秒的条件给鸡蛋,但我很困惑如何为一个鸡蛋做一个线程,从上到下移动,另一边的鸟将继续移动。

提前非常感谢。

与Atif

1 个答案:

答案 0 :(得分:2)

你只需要一个游戏线程,不要使用两个,它会让事情变得更复杂(你需要同步所有东西)。

通常游戏线程执行以下步骤(并永久循环它们):

  • 处理键/触摸事件
  • 执行tick()(更新sprite,状态等)
  • 渲染屏幕

所以,你需要做的是有一个精灵列表(鸟,蛋)。您可以将它们保存在一个数组中。然后在tick()中,更新每个位置。

精灵列表将是动态的,在开始时你将只有一个精灵,鸟。当创建egg时,只需将它添加到sprite数组中,因此从那时起它也将被处理。