private void UpdateKeys() { #region keys handle switch (keyDown) { case (Keys.P): if (MsToSec(_pauseRegisterTimer) >= _pauseRegisterRate) { _pauseRegisterTimer = 0; if (game.State == GameState.Playing) { game.Pause(); } else { game.Unpause(); } } break; case (Keys.Up): if (game.State != GameState.Pause) { world.cat.Direction = Dir.Up; } break; case (Keys.Down): if (game.State != GameState.Pause) { world.cat.Direction = Dir.Down; } break; case (Keys.Right): if (game.State != GameState.Pause) { world.cat.Direction = Dir.Right; } break; case (Keys.Left): if (game.State != GameState.Pause) { world.cat.Direction = Dir.Left; } break; case (Keys.Space): if (game.State != GameState.Pause) { if (MsToSec(_spaceRegisterTimer) >= _spaceRegisterRate) { _spaceRegisterTimer = 0; if (world.cat.State == CatState.Hidden) { world.cat.State = CatState.Idle; world.jumpingPoints[world.AbsPositionToRelative(world.cat.Position)].HasCat = false; toDraw.Add(world.cat.sprite); } else if (world.jumpingPoints.ContainsKey(world.AbsPositionToRelative(world.cat.Position))) { world.jumpingPoints[world.AbsPositionToRelative(world.cat.Position)].HasCat = true; world.cat.State = CatState.Hidden; toDraw.Remove(world.cat.sprite); } } } break; case (Keys.Escape): game.Close(); break; case (Keys.R): if (game.State == GameState.Pause) { game.Unpause(); } game.Restart(); break; case (Keys.Q): game.GameOver(); break; case (default(Keys)): world.cat.Direction = Dir.None; break; } #endregion }