private void HandleGestureSample(GameTime gameTime, GestureSample gesture) { switch (gameRunState) { case GameState.StateLoading: break; case GameState.StateMenu: processTitleScreenTouch(gameTime, gesture); break; case GameState.StateWorld: //check if any icon on the UI was touched //(sidebar here) GameButtonPressed gbpw = uiManager.ProcessInput(gesture); //otherwise check and see if any non-sidebar part of the level UI was pressed //(start/stop/pause button here) if (gbpw != GameButtonPressed.None) { ProcessGameUITouch(gameTime, gbpw); break; } if (!objectManager.ProcessTouch(gesture)) { Spotlight.ProcessTouch(gesture); } break; case GameState.StateRunning: GameButtonPressed gbpr = uiManager.ProcessInput(gesture); if (gbpr != GameButtonPressed.None) { ProcessGameUITouch(gameTime, gbpr); break; } break; case GameState.StateCompleted: if (levelMenu != null && levelMenu.RespondsToGesture(gesture)) { processLevelMenuTouch(gameTime, gesture); break; } break; case GameState.StatePaused: if (pauseMenu != null && pauseMenu.RespondsToGesture(gesture)) { processPauseMenuTouch(gameTime, gesture); } break; case GameState.StateCutscene: if (activeCutscene.ProcessTouch(gesture)) { gameRunState = GameState.StateWorld; activeCutscene = null; } break; default: break; } }
private void AdvanceToNextLevel(GameTime gameTime) { _gameData.levelReached[CurrentChapterNumber] = CurrentLevelNumber; ++CurrentLevelNumber; switch (CurrentLevelNumber) { case 1: //play start cutscene. then start the level. if (CurrentChapterNumber == 0 && _gameData.levelReached[CurrentChapterNumber] == 0) { activeCutscene = new Cutscene("Cutscenes/intro2"); gameRunState = GameState.StateCutscene; } goto default; case 11: CurrentLevelNumber = 1; ++CurrentChapterNumber; goto default; default: try { objectManager = new WorldObjectManager(graphics, Content, string.Concat(ContentDirectory, ChapterPaths[CurrentChapterNumber], CurrentLevelNumber.ToString(), ".xml"), CurrentLevelNumber); objectManager.StartTime = gameTime.TotalGameTime; } catch (System.Xml.XmlException e) { // Next level doesnt exist. Go to next chapter. goto case 11; } catch (System.IndexOutOfRangeException e) { // Next chapter doesnt exist. You've beaten the game. } break; } SaveData(); stopGame(); }