예제 #1
0
        protected override void Update(GameTime gameTime)
        {
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape) || gameOver.Quit)
            {
                Exit();
            }

            MouseKeyboardManager.Update();

            elapsedGameTimeSeconds      = gameTime.ElapsedGameTime.TotalSeconds;
            elapsedGameTimeMilliseconds = gameTime.ElapsedGameTime.TotalMilliseconds;

            switch (state)
            {
            case States.Menu:
                mainMenu.Update(gameTime, ref state, ref player);
                break;

            case States.Quit:
                Exit();
                break;

            case States.FFA:
                ffaArena.Update(gameTime, ref state, ref player);
                break;

            case States.CharacterSelection:
                characterSelection.Update(gameTime, ref state, ref player);
                if (state == States.FFA)
                {
                    ffaArena = new PlayState(Window, spriteBatch, player, networkManager, playerManager);
                }
                break;

            case States.Pause:
                mainMenu.Update(gameTime, ref state, ref player);
                break;

            case States.Lobby:
                lobby.Update(gameTime, ref state, ref player);
                if (state == States.FFA)
                {
                    ffaArena = new PlayState(Window, spriteBatch, player, networkManager, playerManager);
                }
                break;

            case States.Win:
                gameOver.Won = LocalWin;
                gameOver.Update(gameTime, ref state, ref player);
                break;

            default:
                break;
            }



            base.Update(gameTime);
        }
예제 #2
0
        public override void Update(GameTime gameTime, ref States state, ref Character unused)
        {
            if (MouseKeyboardManager.Clicked(Keys.P))
            {
                if (state == States.Pause)
                {
                    state = States.FFA;
                }
                else
                {
                    state = States.Pause;
                }
            }
            if (playerManager.GameOverCheck())
            {
                if (networkManager.Players.FirstOrDefault(p => p.Username == networkManager.Username).Score >= 3)
                {
                    state          = States.Win;
                    Game1.LocalWin = true;
                }
                else
                {
                    state          = States.Win;
                    Game1.LocalWin = false;
                }
            }

            networkManager.Active = networkManager.Status == NetConnectionStatus.Connected;

            networkManager.Update();
            playerManager.UpdatePlayer();
            abilityManager.Update(player);
            userInterfaceManagerHealth.UpdateGameplayLoop();
            MouseKeyboardManager.Update();

            currentLevel.Update();
        }