/// <summary> /// Apply the effect on the object /// </summary> /// <param name="gameTime">Time elpase since last update</param> public override void Apply(GameTime gameTime) { if (this.Control != null) { ITextFadeCapable fadeControl = (ITextFadeCapable)this.Control; //Apply text fade effect fadeControl.TextFade = (fadeControl.FadeIn) ? MathHelper.Min(fadeControl.TextFade + ((float)gameTime.ElapsedGameTime.TotalSeconds * (int)this.Speed), this._to) : MathHelper.Max(fadeControl.TextFade - ((float)gameTime.ElapsedGameTime.TotalSeconds * (int)this.Speed), this._from); if (this.Loop && fadeControl.TextFade >= this._to)//if we loop and control fade is equal or better than the fade reach, set fade to start value { fadeControl.TextFade = this._from; } } }
/// <summary> /// Create a new instance of a TextFadeEffect /// </summary> /// <param name="controle">Gui controle</param> /// <param name="speed">Speed of the Effect</param> /// <param name="from">From value of the Effect</param> /// <param name="to">To value of the Effect</param> /// <param name="loop">True if effect must loop</param> public TextFadeEffect(ITextFadeCapable controle, EffectSpeedEnum speed, float from, float to, bool loop = false) : base(controle, speed, from, to, loop) { }