Exemple #1
0
    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);
    }
Exemple #2
0
    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);
    }