private void RunFade(ref Fade newfade) { if (newfade.Time == 0) { this.Color = Color.White * newfade.ToPercent; newfade.IsDone = true; newfade.IsDoing = false; return; } if (!newfade.IsDoing) { currentFadePercent = ((float)this.Color.A / 255); if(newfade.FromPercent != currentFadePercent) { newfade.FromPercent = currentFadePercent; } float time = newfade.Time; newfade.IsDoing = true; speedFade = (newfade.ToPercent - newfade.FromPercent) / (time * 60); fadeRatio = (newfade.ToPercent - newfade.FromPercent); if (this.Color == new Color(0,0,0,0)) { this.Color = new Color(1,1,1,1); } } if (Math.Abs(fadeRatio) >= Math.Abs(currentFadePercent - newfade.FromPercent) && !newfade.IsDone) { if (Math.Abs(newfade.ToPercent - Math.Abs(currentFadePercent)) < Math.Abs(speedFade)) { this.Color = Color.White * newfade.ToPercent; newfade.IsDone = true; newfade.IsDoing = false; } else { currentFadePercent += speedFade; this.Color = Color.White * (currentFadePercent); } } else { newfade.IsDone = true; newfade.IsDoing = false; } }
public virtual void AddFade(Fade fade) { _fadeList.Add(fade); }
public virtual void AddFade(Fade fade) { _fadeList.Add(fade); }