2012-01-20 2 views
1

Есть ли у кого-нибудь хороший учебник по управлению государственным языком на Java? Я рассматривал это в течение последних нескольких дней, и все, что я встречаю, похоже, не работает должным образом для того, что мне нужно для этого. Мне нужно, чтобы он мог вводить пользователя, а затем переключиться с состояния заголовка на состояние игры. Заранее спасибо.Управление Java Game State

+1

Возможно, вам больше повезло на [gamedev.stackexchange.com] (http://gamedev.stackexchange.com/) – drew010

+0

Yea. Я проверил там, но не много вещей в java и много говорят о том, как это сделать. – x3zinja12

ответ

5

Я укажу вам в правильном направлении, предоставив вам кусочек жаргона, который нужно искать: «Конечный автомат». Для игровых меню достаточно FSM. Теперь, когда вы знаете слово «buzz», вы можете найти массу примеров просто по поиску. Хотя основная идея очень проста, существует множество различных реализаций. Просто помните, что такая система для переходов состояния игры не должна быть такой экстремальной.

Я лично видел всевозможные вещи из перестроенных многомерных состояний, переходящих в гигантский оператор переключения тысяч строк.

Для основной игры без потоковой передачи или сумасшедший игровых прерываний, вы, вероятно, следует искать подход объектно-ориентированного не более сложной, чем это:

public enum GameState { 
    TITLE_STATE = 0, 
    MAINGAME_STATE, 
    PAUSE_STATE, 
} 

void GameStateUpdate() { 
    // handle update 
    switch(m_curState) { 
     case TITLE_STATE: 
      UpdateTitleScreen(); 
      if(UserPressesEnter()) { 
       m_curState = MAINGAME_STATE; 
      } 
      break; 
     case MAINGAME_STATE: 
      UpdateMainGame(); 
      if(UserPressesPause()) { 
       m_curState = PAUSE_STATE; 
      } 
      break; 
     case PAUSE_STATE: 
      UpdatePause(); 
      if(UserDoneWithPause()) { 
       m_curState = MAINGAME_STATE; 
      } 
      break; 
    } 
} 

Работа от чего-то вроде этого, и посмотреть, если вы можете добавить переходные состояния для таких вещей, как всплывающее меню и пауза, или вступительный ролик перед запуском «MAINGAME_STATE».