FadeTransition.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. using Microsoft.Xna.Framework;
  2. using Microsoft.Xna.Framework.Graphics;
  3. namespace MonoGame.Extended.Screens.Transitions
  4. {
  5. public class FadeTransition : Transition
  6. {
  7. private readonly GraphicsDevice _graphicsDevice;
  8. private readonly SpriteBatch _spriteBatch;
  9. public FadeTransition(GraphicsDevice graphicsDevice, Color color, float duration = 1.0f)
  10. : base(duration)
  11. {
  12. Color = color;
  13. _graphicsDevice = graphicsDevice;
  14. _spriteBatch = new SpriteBatch(graphicsDevice);
  15. }
  16. public override void Dispose()
  17. {
  18. _spriteBatch.Dispose();
  19. }
  20. public Color Color { get; }
  21. public override void Draw(GameTime gameTime)
  22. {
  23. _spriteBatch.Begin(SpriteSortMode.Deferred, null, samplerState: SamplerState.PointClamp, null, null);
  24. _spriteBatch.FillRectangle(0, 0, _graphicsDevice.Viewport.Width, _graphicsDevice.Viewport.Height, Color * Value);
  25. _spriteBatch.End();
  26. }
  27. }
  28. }