GameLoopThread в простой игре для Android, как я могу выполнить параллельный поток? - PullRequest
0 голосов
/ 22 октября 2011

Я занимаюсь разработкой игры для Android, мне нужна помощь по многопоточности, поскольку я рассматриваю это. Я прилагаю изображение, тогда я могу объяснить, что мне нужно. enter image description here Птица в моей игре отлично движется слева направо и справа налево, также перемещая ее перья, как два изображения, но я запускаю код в некоторое время, которое начнет давать яйцо, например, птица будет летать в течение 4 минут и после каждые 20 секунд он будет опускать яйцо, теперь яйцо будет перемещаться сверху вниз, и, как мне кажется, будет использоваться другой игровой поток, для него я использовал объект GameLoopThread, а SurfaceHolder удерживает поверхность, Я использовал этот код http://www.edu4java.com/androidgame/androidgame3.html Я могу сделать условие 20 секунд, чтобы дать яйцо, но я запутался, как сделать нить для яйца, которая будет двигаться сверху вниз, а на другой стороне птица будет продолжать двигаться.

Действительно, заранее спасибо.

Atif

1 Ответ

2 голосов
/ 23 октября 2011

Вам нужен только один игровой поток, не используйте два, это усложнит ситуацию (вам нужно все синхронизировать).

Обычно игровой поток выполняет следующие действия (и зацикливает их навсегда)):

  • обрабатывает событие нажатия клавиш / касания
  • выполняет тик () (обновление спрайтов, состояний и т. Д.)
  • отображает экран

Итак, вам нужно иметь список спрайтов (птица, яйцо).Вы можете хранить их в массиве.Затем в tick () вы обновляете положение каждого из них.

Список спрайтов будет динамическим, в начале, конечно, у вас будет только один спрайт, птица.Когда яйцо будет создано, просто добавьте его в массив спрайтов, чтобы с этого момента оно также обрабатывалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...