/// <summary> /// The constructor is private: loading screens should /// be activated via the static Load method instead. /// </summary> private LoadingScreen(ScreenManager screenManager, bool loadingIsSlow, GameScreen[] screensToLoad) { this.loadingIsSlow = loadingIsSlow; this.screensToLoad = screensToLoad; TransitionOnTime = TimeSpan.FromSeconds(0.5); }
/// <summary> /// Draws the button /// </summary> /// <param name="screen">The screen drawing the button</param> public void Draw(GameScreen screen) { // Grab some common items from the ScreenManager SpriteBatch spriteBatch = screen.ScreenManager.SpriteBatch; SpriteFont font = screen.ScreenManager.Font; Texture2D blank = screen.ScreenManager.BlankTexture; // Compute the button's rectangle Rectangle r = new Rectangle( (int)Position.X, (int)Position.Y, (int)Size.X, (int)Size.Y); // Fill the button spriteBatch.Draw(blank, r, FillColor * Alpha); // Draw the border spriteBatch.Draw( blank, new Rectangle(r.Left, r.Top, r.Width, BorderThickness), BorderColor * Alpha); spriteBatch.Draw( blank, new Rectangle(r.Left, r.Top, BorderThickness, r.Height), BorderColor * Alpha); spriteBatch.Draw( blank, new Rectangle(r.Right - BorderThickness, r.Top, BorderThickness, r.Height), BorderColor * Alpha); spriteBatch.Draw( blank, new Rectangle(r.Left, r.Bottom - BorderThickness, r.Width, BorderThickness), BorderColor * Alpha); // Draw the text centered in the button Vector2 textSize = font.MeasureString(Text); Vector2 textPosition = (new Vector2(r.Center.X, r.Center.Y) - textSize / 2f) + TextOffSet; textPosition.X = (int)textPosition.X; textPosition.Y = (int)textPosition.Y; spriteBatch.DrawString(font, Text, textPosition + new Vector2(2, 2), Color.Black); spriteBatch.DrawString(font, Text, textPosition, Color.White); //spriteBatch.DrawString(font, Text, textPosition, TextColor * Alpha); }