public static bool DrawButton(SpriteBatch sb, Rectangle rect, string text, Color color, bool isHoldable = false) { bool clicked = false; if (rect.Contains(PlayerInput.MousePosition)) { clicked = PlayerInput.LeftButtonHeld(); color = clicked ? new Color((int)(color.R * 0.8f), (int)(color.G * 0.8f), (int)(color.B * 0.8f), color.A) : new Color((int)(color.R * 1.2f), (int)(color.G * 1.2f), (int)(color.B * 1.2f), color.A); if (!isHoldable) { clicked = PlayerInput.LeftButtonClicked(); } } DrawRectangle(sb, rect, color, true); Vector2 origin; try { origin = Font.MeasureString(text) / 2; } catch { origin = Vector2.Zero; } Font.DrawString(sb, text, new Vector2(rect.Center.X, rect.Center.Y), Color.White, 0.0f, origin, 1.0f, SpriteEffects.None, 0.0f); return(clicked); }
public static void DrawString(SpriteBatch sb, Vector2 pos, string text, Color color, Color?backgroundColor = null, int backgroundPadding = 0, ScalableFont font = null) { if (font == null) { font = Font; } if (backgroundColor != null) { Vector2 textSize = font.MeasureString(text); DrawRectangle(sb, pos - Vector2.One * backgroundPadding, textSize + Vector2.One * 2.0f * backgroundPadding, (Color)backgroundColor, true); } font.DrawString(sb, text, pos, color); }