Ejemplo n.º 1
0
        protected override void Update(GameTime gameTime)
        {
            if (!IsActive)
            {
                return;
            }

            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
                return;
            }

            #region update input statics
            MouseState    = Mouse.GetState();
            KeyboardState = Keyboard.GetState();

            if (prevPressed != null)
            {
                keysReleased = prevPressed.Except(KeyboardState.GetPressedKeys()).ToArray(); // released since the last frame
                keysPressed  = KeyboardState.GetPressedKeys().Except(prevPressed).ToArray(); // pressed in this frame

                if (keysPressed.Length > 0)
                {
                    if (focusedControl != null)
                    {
                        focusedControl.ProcessKey(keysPressed[0]);
                    }
                }
            }
            else
            {
                keysReleased = new Keys[0];
                keysPressed  = new Keys[0];
            }
            prevPressed = KeyboardState.GetPressedKeys();
            #endregion

            float dTime = (float)gameTime.ElapsedGameTime.TotalSeconds;
            time += dTime;

            layouter.Update(time, dTime);

            base.Update(gameTime);
        }