/// <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; } }
public void ChangeGameMode(IGameMode gameMode) { m_currentGameMode = gameMode; m_currentGameMode.Initialize(); m_currentGameMode.LoadContent(); }