예제 #1
0
        public void Update(GameTime gameTime, MouseState mouse)
        {
            MouseScreenRect        = new Rectangle((int)mouse.X, (int)mouse.Y, 2, 2);
            MouseWorldRect         = new Rectangle((int)mouse.X + (int)Camera.Position.X, (int)mouse.Y + (int)Camera.Position.Y, 2, 2);
            TimeSinceMouseClicked += gameTime.ElapsedGameTime.Milliseconds;

            if (switcher)
            {
                DelayBetweenSwitch += gameTime.ElapsedGameTime.Milliseconds;
            }
            if (DelayBetweenSwitch > 300)
            {
                DelayBetweenSwitch = 0;
                switcher           = false;
                FlipFlopButtons();
                if (spinButton.isAnimation1)
                {
                    DisplayNewButtons();
                }
            }

            spinButton.Update(gameTime);
            //Handle Left Mouse Button Click
            if (TimeSinceMouseClicked > TimeToDelayClicks)
            {
                if (mouse.LeftButton == ButtonState.Pressed)
                {
                    MouseClicked();
                    TimeSinceMouseClicked = 0;
                }
            } //Handle Left Button Click
            if (mouse.RightButton == ButtonState.Pressed)
            {
                NullifyEverything();
            }

            //What Happens When You Press Escape.
            if (InputHandler.KeyPressed(Keys.Escape))
            {
                NullifyEverything();
            }

            //If We have Selected a Tower.
            if (CurrentlyClicked != null)
            {
                Vector2 TileAtClick = tilemap.GetCollTileAtPixel(new Vector2(MouseWorldRect.X, MouseWorldRect.Y));
                TowerToDisplay.Location = TileAtClick * 64;
                if (tilemap.GetCollCellIndex(TileAtClick) == 1)
                {
                    TowerToDisplay.spriteAnimation.TintColor = Color.LightGreen;
                    TowerToDisplay.TurretAnim.TintColor      = Color.LightGreen;
                }
                else
                {
                    TowerToDisplay.spriteAnimation.TintColor = Color.Red;
                    TowerToDisplay.TurretAnim.TintColor      = Color.Red;
                }
                TowerToDisplay.Update(gameTime);
                FlipFlopButtons();
            }

            //CurrentlySelected
            if (CurrentlySelected != null)
            {
                sellButton.Update(gameTime);
                if (CircleEffect != null)
                {
                    CircleEffect.Update(gameTime);
                }
            }

            UpdateButtons(gameTime);
            DisplayOnHoverToolBar();
        }