Пример #1
0
 public override void UpdateValue(float elapsedTime)
 {
     this.TweenTarget.TweenedValue = Lerps.Ease(
         this.EaseType,
         this.FromValue,
         this.ToValue,
         elapsedTime,
         this.Duration);
 }
Пример #2
0
        protected override void UpdateValue()
        {
            var next = Lerps.Ease(_easeType, _fromValue, _toValue, _elapsedTime, _duration);

            // XXX: hack for rounding
            // var delta = _toValue - next;
            // if (Math.Abs(delta.X) < 1f && Math.Abs(delta.Y) < 1f) {
            // next = _toValue;
            // }

            _target.SetTweenedValue(next);
        }
Пример #3
0
        /// <summary>
        /// the most common type of transition seems to be one that ticks progress from 0 - 1. This method takes care of that for you
        /// if your transition needs to have a _progress property ticked after the scene loads.
        /// </summary>
        /// <param name="duration">duration</param>
        /// <param name="reverseDirection">if true, _progress will go from 1 to 0. If false, it goes form 0 to 1</param>
        public IEnumerator TickEffectProgressProperty(Effect effect, float duration, EaseType easeType = EaseType.ExpoOut, bool reverseDirection = false)
        {
            var start         = reverseDirection ? 1f : 0f;
            var end           = reverseDirection ? 0f : 1f;
            var progressParam = effect.Parameters["_progress"];

            var elapsed = 0f;

            while (elapsed < duration)
            {
                elapsed += Time.DeltaTime;
                var step = Lerps.Ease(easeType, start, end, elapsed, duration);
                progressParam.SetValue(step);

                yield return(null);
            }
        }
Пример #4
0
        public override IEnumerator OnBeginTransition()
        {
            yield return(null);

            // load up the new Scene
            yield return(Core.StartCoroutine(LoadNextScene()));

            var elapsed = 0f;

            while (elapsed < FadeDuration)
            {
                elapsed += Time.DeltaTime;
                _color   = Lerps.Ease(FadeEaseType, ref _fromColor, ref _toColor, elapsed, FadeDuration);

                yield return(null);
            }

            TransitionComplete();
        }
Пример #5
0
        /// <summary>
        /// animates the letterbox in
        /// </summary>
        /// <returns>The in.</returns>
        /// <param name="letterboxSize">Letterbox size.</param>
        /// <param name="duration">Duration.</param>
        /// <param name="easeType">Ease type.</param>
        public IEnumerator AnimateIn(float letterboxSize, float duration = 2, EaseType easeType = EaseType.ExpoOut)
        {
            // wait for any current animations to complete
            while (_isAnimating)
            {
                yield return(null);
            }

            _isAnimating = true;
            var elapsedTime = 0f;

            while (elapsedTime < duration)
            {
                elapsedTime       += Time.DeltaTime;
                this.LetterboxSize = Lerps.Ease(easeType, 0, letterboxSize, elapsedTime, duration);
                yield return(null);
            }
            _isAnimating = false;
        }
Пример #6
0
        public override IEnumerator OnBeginTransition()
        {
            yield return(null);

            // load up the new Scene
            yield return(Core.StartCoroutine(LoadNextScene()));

            var elapsed = 0f;

            while (elapsed < Duration)
            {
                elapsed         += Time.DeltaTime;
                _destinationRect = Lerps.Ease(TransitionEaseType, ref _textureBounds, ref _finalRenderRect, elapsed, Duration);

                yield return(null);
            }

            TransitionComplete();
        }
Пример #7
0
        public IEnumerator TickEffectProgressProperty(
            IProgressEffect effect,
            float duration,
            EaseType easeType     = EaseType.ExpoOut,
            bool reverseDirection = false)
        {
            var start = reverseDirection ? 1f : 0f;
            var end   = reverseDirection ? 0f : 1f;

            var startAt = DateTime.Now;

            while ((DateTime.Now - startAt).TotalSeconds < duration)
            {
                var elapsed = (float)(DateTime.Now - startAt).TotalSeconds;
                var step    = Lerps.Ease(easeType, start, end, elapsed, duration);
                effect.Progress = step;

                yield return(null);
            }
        }
Пример #8
0
        public override IEnumerator OnBeginTransition()
        {
            yield return(null);

            var elapsed = 0f;

            while (elapsed < Duration)
            {
                elapsed        += Time.DeltaTime;
                _renderScale    = Lerps.Ease(ScaleEaseType, MaxScale, MinScale, elapsed, Duration);
                _renderRotation = Lerps.Ease(RotationEaseType, MinRotation, MaxRotation, elapsed, Duration);

                yield return(null);
            }

            // load up the new Scene
            yield return(Core.StartCoroutine(LoadNextScene()));

            // dispose of our previousSceneRender. We dont need it anymore.
            PreviousSceneRender.Dispose();
            PreviousSceneRender = null;

            yield return(Coroutine.WaitForSeconds(DelayBeforeMaskOut));

            elapsed = 0f;
            while (elapsed < Duration)
            {
                elapsed     += Time.DeltaTime;
                _renderScale = Lerps.Ease(EaseHelper.OppositeEaseType(ScaleEaseType), MinScale, MaxScale, elapsed,
                                          Duration);
                _renderRotation = Lerps.Ease(EaseHelper.OppositeEaseType(RotationEaseType), MaxRotation, MinRotation,
                                             elapsed, Duration);

                yield return(null);
            }

            TransitionComplete();
        }
Пример #9
0
        public override IEnumerator OnBeginTransition()
        {
            var startAt = DateTime.Now;

            while ((DateTime.Now - startAt).TotalSeconds < this.FadeOutDuration)
            {
                var elapsed = (float)(DateTime.Now - startAt).TotalSeconds;
                this.color = Lerps.Ease(
                    this.FadeEaseType,
                    ref this.fromColor,
                    ref this.toColor,
                    elapsed,
                    this.FadeOutDuration);

                yield return(null);
            }

            this.SetNextScene();

            yield return(DefaultCoroutines.Wait(this.DelayBeforeFadeInDuration));

            startAt = DateTime.Now;
            while ((DateTime.Now - startAt).TotalSeconds < this.FadeInDuration)
            {
                var elapsed = (float)(DateTime.Now - startAt).TotalSeconds;
                this.color = Lerps.Ease(
                    EaseHelper.OppositeEaseType(this.FadeEaseType),
                    ref this.toColor,
                    ref this.fromColor,
                    elapsed,
                    this.FadeInDuration);

                yield return(null);
            }

            this.TransitionComplete();
        }
Пример #10
0
        public override IEnumerator OnBeginTransition()
        {
            yield return(null);

            var startAt = DateTime.Now;

            while ((DateTime.Now - startAt).TotalSeconds < this.Duration)
            {
                var elapsed = (float)(DateTime.Now - startAt).TotalSeconds;
                this.destinationRect = Lerps.Ease(
                    this.TransitionEaseType,
                    this.PreviousSceneRender.Bounds,
                    this.finalRenderRect,
                    elapsed,
                    this.Duration);

                yield return(null);
            }

            this.SetNextScene();

            startAt = DateTime.Now;
            while ((DateTime.Now - startAt).TotalSeconds < this.Duration)
            {
                var elapsed = (float)(DateTime.Now - startAt).TotalSeconds;
                this.destinationRect = Lerps.Ease(
                    this.TransitionEaseType,
                    this.finalRenderRect,
                    this.PreviousSceneRender.Bounds,
                    elapsed,
                    this.Duration);

                yield return(null);
            }

            this.TransitionComplete();
        }
Пример #11
0
        public override IEnumerator OnBeginTransition()
        {
            // create a single pixel texture of our fadeToColor
            _overlayTexture = Graphics.CreateSingleColorTexture(1, 1, FadeToColor);

            var elapsed = 0f;

            while (elapsed < FadeOutDuration)
            {
                elapsed += Time.DeltaTime;
                _color   = Lerps.Ease(FadeEaseType, ref _toColor, ref _fromColor, elapsed, FadeOutDuration);

                yield return(null);
            }

            // load up the new Scene
            yield return(Core.StartCoroutine(LoadNextScene()));

            // dispose of our previousSceneRender. We dont need it anymore.
            PreviousSceneRender.Dispose();
            PreviousSceneRender = null;

            yield return(Coroutine.WaitForSeconds(DelayBeforeFadeInDuration));

            elapsed = 0f;
            while (elapsed < FadeInDuration)
            {
                elapsed += Time.DeltaTime;
                _color   = Lerps.Ease(EaseHelper.OppositeEaseType(FadeEaseType), ref _fromColor, ref _toColor, elapsed,
                                      FadeInDuration);

                yield return(null);
            }

            TransitionComplete();
            _overlayTexture.Dispose();
        }
Пример #12
0
 protected override void UpdateValue()
 {
     (this as ITweenTarget <float>).SetTweenedValue((float)Lerps.Ease(_easeType, _fromValue, _toValue, _elapsedTime, _duration));
 }