Как мне запрограммировать разные этапы игры? - PullRequest
0 голосов
/ 13 января 2012

Я создаю мобильную игру, которая состоит из двух частей. Первый медленный, второй быстрый. Второй выполняется после того, как первый был удовлетворен.

Я думал о том, чтобы запустить игру в игровом цикле и разделить два этапа в цикле:

MainGameLoop:
while (running) {
 while (!FirstStage.isDone) {
  FirstStage.run(); 
 }
 while (!SecondStage.isDone) {
  SecondStage.run();
 }
}

Это правильная парадигма? Существуют ли какие-либо парадигмы / шаблоны программирования игр, к которым я могу обратиться?

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Хороший способ играть в игры - использовать "State Machines" Очень легко работать и расширять.

while(true)
{
    switch(game_state)
    {  
       case SLOW_STUFF: // whatver
             if(move_on):  game_state = FAST_STUFF; // or something like this.
             break;
       case FAST_STUFF:  // whatever..
       // then also...
       case GAME_OVER:
       case WAIT_FOR_START:
       case QUIT:
          // save state..
          return;
     etc

    }
}
0 голосов
/ 13 января 2012

Теоретически это правильно.Но на практике ваше приложение будет управляться событиями и, вероятно, не будет иметь своего собственного цикла, а будет использовать системный цикл событий, такой как на Android.Это часто подразумевается.Таким образом, по завершении первого этапа будет запущено событие (будет вызван метод), которое устанавливает состояние, указывающее, что второй этап запущен.

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