public override void Update(GameTime gameTime)
{
KeyboardState keyState = Keyboard.GetState();
float dt = (float)gameTime.ElapsedGameTime.TotalSeconds;
const float OpenSpeed = 8.0f;
const float CloseSpeed = 8.0f;
switch (state)
{
case State.Closed:
if (keyState.IsKeyDown(Keys.Tab))
Show();
break;
case State.Opening:
stateTransition += dt * OpenSpeed;
if (stateTransition > 1.0f)
{
stateTransition = 1.0f;
state = State.Opened;
}
break;
case State.Opened:
ProcessKeyInputs(dt);
break;
case State.Closing:
stateTransition -= dt * CloseSpeed;
if (stateTransition < 0.0f)
{
stateTransition = 0.0f;
state = State.Closed;
}
break;
}
prevKeyState = keyState;
base.Update(gameTime);
}