示例#1
0
 /// <summary>
 /// Switch between the different GameStates and update the current GameMode
 /// </summary>
 /// <param name="gameTime">Provides a snapshot of timing values.</param>
 private void GameMode(GameTime gameTime)
 {
     switch(State) {
         case GameState.StartUp:
             if(!(gameMode is StartUp)) {
                 gameMode = startUp;
             }
             gameMode.Update(gameTime);
             break;
         case GameState.InGame:
             if(!(gameMode is InGame)) {
                 inGame = new InGame(this);
                 gameMode = inGame;
                 gameMode.LoadContent(this.Content);
             }
             gameMode.Update(gameTime);
             break;
         case GameState.JoinGame:
             if(PlayerName == "" || !Regex.IsMatch(PlayerName, @"^[a-zA-Z0-9]{3,12}$")) {
                 this.SetName();
                 break;
             }
             if(!(gameMode is JoinGame)) {
                 joinGame = new JoinGame(this);
                 gameMode = joinGame;
                 gameMode.LoadContent(this.Content);
             }
             gameMode.Update(gameTime);
             break;
         case GameState.CreateGame:
             if(PlayerName == "" || !Regex.IsMatch(PlayerName, @"^[a-zA-Z0-9]{3,12}$")) {
                 this.SetName();
                 break;
             }
             if(!(gameMode is CreateGame)) {
                 createGame = new CreateGame(this);
                 gameMode = createGame;
                 gameMode.LoadContent(this.Content);
             }
             gameMode.Update(gameTime);
             break;
         case GameState.Exit:
             this.Exit();
             break;
     }
 }
示例#2
0
 public void ChangeGameMode(IGameMode gameMode)
 {
     m_currentGameMode = gameMode;
     m_currentGameMode.Initialize();
     m_currentGameMode.LoadContent();
 }