public LeaderBoard() { highscoreManager = new OnlineHighScore(); board = highscoreManager.getScores(); updateTimer = 0; //Add back button backButton = new Button("BACK", Color.LightGreen, Color.DarkGreen, Fonts.FNT_MENU); backButton.Position = SCREEN_SIZE.ToVector2() - backButton.Dimensions; Add(backButton); }
public override void HandleInput(InputHelper inputHelper) { if (inputHelper.CurrentPressedKeys().ToList().Contains(Keys.D) && inputHelper.CurrentPressedKeys().ToList().Contains(Keys.LeftShift)) { GameEnvironment.GameStateManager.AddGameState("GameOverState", new GameOverState()); GameEnvironment.GameStateManager.SwitchTo("GameOverState"); } if (inputHelper.IsKeyDown(Keys.LeftShift) && inputHelper.IsKeyDown(Keys.H)) { if (inputHelper.IsKeyDown(Keys.W)) { GameStats.Wave++; } if (inputHelper.IsKeyDown(Keys.D)) { GameStats.Wave++; } if (inputHelper.IsKeyDown(Keys.R)) { GameStats.EcResources += 10; } if (inputHelper.IsKeyDown(Keys.L)) { GameStats.BaseHealth += 2; } } //zoom Vector2 oldScale = scale; if (inputHelper.ScrollUp()) { if (scale.X < 1f) { scale *= new Vector2(1.07f); } } if (inputHelper.ScrollDown()) { if ((LEVEL_SIZE.X * NODE_SIZE.X * scale.X > GAME_WINDOW_SIZE.X + 96)) { scale *= new Vector2(1 / 1.07f); } } if (inputHelper.IsKeyDown(Keys.Q)) { if (scale.X < 1f) { scale *= new Vector2(1.02f); } } if (inputHelper.IsKeyDown(Keys.A)) { if ((LEVEL_SIZE.X * NODE_SIZE.X * scale.X > GAME_WINDOW_SIZE.X + 96)) { scale *= new Vector2(1 / 1.02f); } } Vector2 dScale = scale - oldScale; position -= (position + (SCREEN_SIZE.toVector())) * dScale / oldScale; //Focus on base if (inputHelper.IsKeyDown(Keys.Space)) { position += (-position - LEVEL_CENTER * scale + scale * GAME_WINDOW_SIZE.toVector() / 2) / 22; } //Manually handle the input of the active plane currentPlane.HandleInput(inputHelper); //Camera Movement Vector2 mp = inputHelper.MousePosition; float spd = SLIDE_SPEED / scale.X; if (mp.X < SLIDE_BORDER) { position.X += spd; } if (mp.X > SCREEN_SIZE.X - SLIDE_BORDER) { position.X -= spd; } if (mp.Y < SLIDE_BORDER) { position.Y += spd; } if (mp.Y > SCREEN_SIZE.Y - SLIDE_BORDER) { position.Y -= spd; } //Make sure the camera doesn't move out of bounds if (position.X > -NODE_SIZE.X / 2 - GridNode.origin.X / 2) { position.X = -NODE_SIZE.X / 2 - GridNode.origin.X / 2; } if (position.Y > -NODE_SIZE.Y / 2 - GridNode.origin.Y) { position.Y = -NODE_SIZE.Y / 2 - GridNode.origin.Y; } if (position.X < -NODE_SIZE.X * LEVEL_SIZE.X + GAME_WINDOW_SIZE.X / scale.X) { position.X = -NODE_SIZE.X * LEVEL_SIZE.X + GAME_WINDOW_SIZE.X / scale.X; } if (position.Y < -NODE_SIZE.Y / 2 * LEVEL_SIZE.Y + GAME_WINDOW_SIZE.Y / scale.Y) { position.Y = -NODE_SIZE.Y / 2 * LEVEL_SIZE.Y + GAME_WINDOW_SIZE.Y / scale.Y; } base.HandleInput(inputHelper); }