Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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();
        }