Example #1
0
 private void DrawButtonTT(Button[] buttons)
 {
     Rectangle tooltip;
     String label; // tooltip's text
     int width, height; // width & height of the tooltip rectangle
     float scale = 0.4f;
     foreach (Button b in buttons)
     {
         if (b.Show && mouseR.Intersects(b.Area))
         {
             label = b.Tooltip;
             width = (int)(font.MeasureString(label).X * scale);
             height = (int)(font.MeasureString(label).Y * scale);
             tooltip = new Rectangle(mouse.X, mouse.Y - 15, width, height);
             spriteBatch.Draw(texBlank, tooltip, new Color(50, 50, 50, 128));
             spriteBatch.DrawString(font, label, new Vector2(tooltip.X, tooltip.Y),
                 Color.White, 0, Vector2.Zero, scale, SpriteEffects.None, 0);
         }
     }
 }
Example #2
0
        private void CheckTowerButtons(Button[] buttons)
        {
            Button lastDown = null, newDown = null;
            Boolean somethingPressed = false;

            foreach (Button b in buttons)
            {
                if (mouseR.Intersects(b.Area)) // mouse is clicking this button
                {
                    newDown = b;
                    somethingPressed = true;
                    buildType = b.Label;
                    buildMode = true;
                }
                if (b.Down) // button that was previously pressed
                {
                    lastDown = b;
                }
                b.Release(); // buttons not being pressed must be up
            }
            if (!somethingPressed && lastDown != null) // none of these buttons are pressed
            {
                lastDown.Press();
            }
            if (newDown != null) // a new button from this set is being pressed
            {
                newDown.Press();
            }
        }
Example #3
0
        // Draws each button and its label from a set of buttons
        private void DrawButtons(Button[] buttons)
        {
            Color lColor;
            Color bColor;

            foreach (Button b in buttons)
            {
                if (b.Down)
                {
                    bColor = Color.White;
                    lColor = Color.White;
                }
                else
                {
                    bColor = new Color(230, 230, 250, 255);
                    lColor = new Color(255, 255, 255, 200);
                }

                spriteBatch.Draw(b.Texture, b.Area, bColor);
                spriteBatch.DrawString(font, b.Label, b.LabelPosition, lColor, 0,
                    Vector2.Zero, b.LabelScale, SpriteEffects.None, 0);
            }
        }
Example #4
0
        // Sets up every button
        private void SetupButtons()
        {
            #region Panel Buttons
            bTowers = new Button("Towers", font, new Rectangle(bPanelTop.X, bPanelTop.Y + 3, bWidth, bHeight), texButtonUp,
                texButtonDown, true, "Build different towers");
            buttonsPanel = new Button[] { bTowers };
            #endregion

            #region Tower Type Buttons
            bDirect = new Button("Direct", font, new Rectangle(bPanelTowersL.X + pPad, bPanelTowersL.Y + pPad, bWidth, bHeight),
                texButtonUp, texButtonDown, true, "Towers that apply damage to a single target");
            bSplash = new Button("Splash", font, new Rectangle(bDirect.Area.X, bDirect.Area.Y + bHeight + bPad, bWidth,
                bHeight), texButtonUp, texButtonDown, false, "Towers that apply damage to multiple targets");
            bUtility = new Button("Utility", font, new Rectangle(bSplash.Area.X, bSplash.Area.Y + bHeight + bPad, bWidth,
                bHeight), texButtonUp, texButtonDown, false, "Towers that perform support roles");
            buttonsBuild = new Button[] { bDirect, bSplash, bUtility };
            #endregion

            #region Direct DMG Tower Buttons
            buttonsDirect = new Button[] {
                new Button("Rifle",font,new Rectangle(bPanelTowersR.X + pPad,bPanelTowersR.Y + pPad,
                bWidth,bHeight),texButtonUp, texButtonDown, false, "Cheap tower that fires single shots"),
                new Button("MG",font,new Rectangle(bPanelTowersR.X + pPad,bPanelTowersR.Y + bHeight + pPad,
                bWidth,bHeight),texButtonUp, texButtonDown, false, "Covers an area with bullets"),
                new Button("Pulse",font,new Rectangle(bPanelTowersR.X + pPad,bPanelTowersR.Y + bHeight*2 + pPad,
                bWidth,bHeight),texButtonUp, texButtonDown, false, "Fires accurate pulses of energy"),
                new Button("Gamma",font,new Rectangle(bPanelTowersR.X + pPad,bPanelTowersR.Y + bHeight*3 + pPad,
                bWidth,bHeight),texButtonUp, texButtonDown, false, "Continuously damages its target"),
            };
            #endregion

            #region Splash DMG Tower Buttons
            buttonsSplash = new Button[] {
                new Button("Rocket",font,new Rectangle(bPanelTowersR.X + pPad,bPanelTowersR.Y + pPad,bWidth,bHeight),
                    texButtonUp, texButtonDown, false, "Fires rockets"),
                new Button("Artillery",font,new Rectangle(bPanelTowersR.X + pPad,bPanelTowersR.Y + pPad+bHeight,bWidth,bHeight),
                    texButtonUp, texButtonDown, false, "Fires long range shells"),
                new Button("Flame",font,new Rectangle(bPanelTowersR.X + pPad,bPanelTowersR.Y + pPad+bHeight*2,bWidth,bHeight),
                    texButtonUp, texButtonDown, false, "Shoots fire")
            };
            #endregion

            #region Utility Tower Buttons
            buttonsUtility = new Button[] {
                new Button("Command",font,new Rectangle(bPanelTowersR.X + pPad,bPanelTowersR.Y + pPad,bWidth,bHeight),
                    texButtonUp, texButtonDown, false, "Enhances nearby towers' attributes"),
                new Button("Concussion",font,new Rectangle(bPanelTowersR.X + pPad,bPanelTowersR.Y + pPad+bHeight,bWidth,bHeight),
                    texButtonUp, texButtonDown, false, "Slows Nearby Enemies")
            };
            #endregion

            #region Menu Buttons
            buttonsMenu = new Button[] {
                new Button("Controls", font, new Rectangle(menu.X+(menu.Width-bWidth)/2, menu.Y+80,bWidth,bHeight),
                    texButtonUp,texButtonDown, false, "Display controls"),
                new Button("Quit",font,new Rectangle(menu.X + (menu.Width - bWidth) / 2,menu.Y+120,bWidth,bHeight),
                    texButtonUp, texButtonDown, false, "Exits the game"),
                new Button("Restart",font,new Rectangle(menu.X + (menu.Width - bWidth) / 2,menu.Y+160,bWidth,bHeight),
                texButtonUp,texButtonDown, false, "Restarts the game"),
            };
            #endregion

            #region Other Buttons
            bUpgrade = new Button("Upgrade", font, new Rectangle(bPanelSelect.X - pPad*2 - bWidth,
                bPanelSelect.Bottom - bHeight - pPad, bWidth, bHeight), texButtonUp, texButtonDown, false,
                "Improves this tower");
            bUpgrade.Show = true;
            #endregion

            foreach (Button b in buttonsDirect)
                b.Show = true;
        }