refactoring to comply with c# conventions
This commit is contained in:
92
RhythmBullet/Screens/Transitions/FadeAwayTransition.cs
Normal file
92
RhythmBullet/Screens/Transitions/FadeAwayTransition.cs
Normal file
@@ -0,0 +1,92 @@
|
||||
using Microsoft.Xna.Framework;
|
||||
using Microsoft.Xna.Framework.Graphics;
|
||||
using RhythmBullet.Utilities.UI;
|
||||
using RhythmBullet.Utilities.ScreenSystem;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RhythmBullet.Screens.Transitions
|
||||
{
|
||||
internal class FadeAwayTransition : IDisposable, ITransition
|
||||
{
|
||||
private float time;
|
||||
public Texture2D curtain;
|
||||
public Rectangle curtainSize;
|
||||
private Color color;
|
||||
private float progR, progG, progB, progA;
|
||||
private float rR, rG, rB, rA;
|
||||
|
||||
internal FadeAwayTransition(float time)
|
||||
{
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public void InitiateTransition(Rectangle dimensions)
|
||||
{
|
||||
curtainSize = dimensions;
|
||||
color = Color.White;
|
||||
rR = (0 - 254) / time;
|
||||
rG = (0 - 254) / time;
|
||||
rB = (0 - 254) / time;
|
||||
rA = (0 - 254) / time;
|
||||
|
||||
progA = color.A;
|
||||
progR = color.R;
|
||||
progG = color.G;
|
||||
progB = color.B;
|
||||
}
|
||||
|
||||
private bool Fade(float deltaf)
|
||||
{
|
||||
if (progR > 0 || progG > 0 || progB > 0)
|
||||
{
|
||||
progR += rR * deltaf;
|
||||
progR = Math.Max(progR, 0);
|
||||
progG += rG * deltaf;
|
||||
progG = Math.Max(progG, 0);
|
||||
progB += rB * deltaf;
|
||||
progB = Math.Max(progB, 0);
|
||||
progA += rA * deltaf;
|
||||
progA = Math.Max(progA, 0);
|
||||
color.R = (byte)progR;
|
||||
color.G = (byte)progG;
|
||||
color.B = (byte)progB;
|
||||
color.A = (byte)progA;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void DrawTransition(SpriteBatch batch)
|
||||
{
|
||||
if (curtain != null)
|
||||
{
|
||||
batch.Draw(curtain, curtainSize, color);
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
curtain.Dispose();
|
||||
}
|
||||
|
||||
public bool EnteringTransition(double delta, bool assetsLoaded)
|
||||
{
|
||||
return Fade((float)delta);
|
||||
}
|
||||
|
||||
public bool ExitingTransition(double delta, bool assetsLoaded)
|
||||
{
|
||||
return Fade((float)delta);
|
||||
}
|
||||
|
||||
public void UpdatePreviousScreenFrame(RenderTarget2D previousScreenFrame)
|
||||
{
|
||||
curtain = previousScreenFrame;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user