public virtual void Draw(GameScreen screen, bool isSelected, GameTime gameTime) { ScreenManager screenManager = screen.ScreenManager; SpriteBatch spriteBatch = screenManager.SpriteBatch; GraphicsDevice graphics = screenManager.GraphicsDevice; outline.Location = position; outline.Width = (graphics.Viewport.Width / 15 / 2); outline.Height = (graphics.Viewport.Width / 15 / 2); if (item.IsPrimary) { spriteBatch.Draw(icon, outline, Color.OrangeRed); } else if (item.IsSecondary) { spriteBatch.Draw(icon, outline, Color.Purple); } else { spriteBatch.Draw(icon, outline, Color.Gray); } spriteBatch.Draw(item.Icon, outline, Color.White); }
/// <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); }
public override void Draw(GameScreen screen, bool isSelected, GameTime gameTime) { ScreenManager screenManager = screen.ScreenManager; SpriteBatch spriteBatch = screenManager.SpriteBatch; GraphicsDevice graphics = screenManager.GraphicsDevice; outline.Location = position; outline.Width = (graphics.Viewport.Width / 45 / 2); outline.Height = (graphics.Viewport.Width / 10 / 2); spriteBatch.Draw(icon, outline, Color.White); }
public override void Draw(GameScreen screen, bool isSelected, Microsoft.Xna.Framework.GameTime gameTime) { ScreenManager screenManager = screen.ScreenManager; SpriteBatch spriteBatch = screenManager.SpriteBatch; GraphicsDevice graphics = screenManager.GraphicsDevice; outline.Location = position; outline.Width = (int)((float)((graphics.Viewport.Width / 45) * 14 ) * (float)(currentHealth / maxHealth) / 2); outline.Height = (graphics.Viewport.Width / 15 / 2); sourceRect.Width = 200; sourceRect.Height = outline.Height; sourceRect.Location = new Point(534, 0); spriteBatch.Draw(icon, outline, sourceRect, Color.White); }
/// <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; textPosition.X = (int)textPosition.X; textPosition.Y = (int)textPosition.Y; spriteBatch.DrawString(font, Text, textPosition, TextColor * Alpha); }
/// <summary> /// Removes a screen from the screen manager. You should normally /// use GameScreen.ExitScreen instead of calling this directly, so /// the screen can gradually transition off rather than just being /// instantly removed. /// </summary> public void RemoveScreen(GameScreen screen) { // If we have a graphics device, tell the screen to unload content. if (isInitialized) { screen.Unload(); } screens.Remove(screen); tempScreensList.Remove(screen); // if there is a screen still in the manager, update TouchPanel // to respond to gestures that screen is interested in. if (screens.Count > 0) { TouchPanel.EnabledGestures = screens[screens.Count - 1].EnabledGestures; } }
/// <summary> /// Adds a new screen to the screen manager. /// </summary> public void AddScreen(GameScreen screen, PlayerIndex? controllingPlayer) { screen.ControllingPlayer = controllingPlayer; screen.ScreenManager = this; screen.IsExiting = false; // If we have a graphics device, tell the screen to load content. if (isInitialized) { screen.Activate(false); } screens.Add(screen); // update the TouchPanel to respond to gestures this screen is interested in TouchPanel.EnabledGestures = screen.EnabledGestures; }