Example #1
0
        public override void Rotate(EasingEnum easingEnum, int startTime, int endTime, float startDeg, float endDeg)
        {
            float startRad = (float)(Math.PI * startDeg / 180d);
            float endRad   = (float)(Math.PI * endDeg / 180d);

            if (_rotateTime.Max == int.MaxValue || endTime > _rotateTime.Max)
            {
                _rotateTime.Max = endTime;
                _r.Target       = endRad;
            }

            if (_rotateTime.Min == int.MinValue || startTime < _rotateTime.Min)
            {
                _rotateTime.Min = startTime;
                _r.Source       = startRad;
            }

            float ms = _watch.ElapsedMilliseconds;

            if (!IsFinished && ms <= _rotateTime.Min)
            {
                _r.RealTimeToSource();
            }

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                _r.RealTime = startRad + (float)easingEnum.Ease(t) * (endRad - startRad);
            }

            if (ms >= _rotateTime.Max)
            {
                _r.RealTimeToTarget();
            }
        }
Example #2
0
        public override void Fade(EasingEnum easingEnum, int startTime, int endTime, float startOpacity, float endOpacity)
        {
            if (_fadeTime.Max == int.MaxValue || endTime > _fadeTime.Max)
            {
                _fadeTime.Max = endTime;
                _f.Target     = endOpacity;
            }

            if (_fadeTime.Min == int.MinValue || startTime < _fadeTime.Min)
            {
                _fadeTime.Min = startTime;
                _f.Source     = startOpacity;
            }

            float ms = _watch.ElapsedMilliseconds;

            if (!IsFinished && ms <= _fadeTime.Min)
            {
                _f.RealTimeToSource();
            }
            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                _f.RealTime = startOpacity + (float)easingEnum.Ease(t) * (endOpacity - startOpacity);
            }

            if (ms >= _fadeTime.Max)
            {
                _f.RealTimeToTarget();
            }
        }
 public QuaternionTween(
     float duration, Quaternion tweenFrom, Quaternion tweenTo, EasingEnum easingType, Action <Quaternion> onUpdated, Action <CUnit> onCompleted
     )
     : base(duration, tweenFrom, Quaternion.identity, easingType, onUpdated, onCompleted)
 {
     this.tweenTo = tweenTo;
 }
Example #4
0
        public static NormalizedEasing NormalizedFunc(this EasingEnum self)
        {
            switch (self)
            {
            case EasingEnum.Linear:
                return(LinearNormalized);

            case EasingEnum.QuadEaseIn:
                return(QuadEaseInNormalized);

            case EasingEnum.QuadEaseOut:
                return(QuadEaseOutNormalized);

            case EasingEnum.QuadEaseInOut:
                return(QuadEaseInOutNormalized);

            case EasingEnum.QuadEaseOutIn:
                return(QuadEaseOutInNormalized);

            case EasingEnum.BackEaseIn:
                return(BackEaseInNormalized);

            case EasingEnum.BackEaseOut:
                return(BackEaseOutNormalized);

            case EasingEnum.BackEaseInOut:
                return(BackEaseInOutNormalized);

            case EasingEnum.BackEaseOutIn:
                return(BackEaseOutInNormalized);

            case EasingEnum.ElasticEaseIn:
                return(ElasticEaseInNormalized);

            case EasingEnum.ElasticEaseOut:
                return(ElasticEaseOutNormalized);

            case EasingEnum.ElasticEaseInOut:
                return(ElasticEaseInOutNormalized);

            case EasingEnum.ElasticEaseOutIn:
                return(ElasticEaseOutInNormalized);

            case EasingEnum.BounceEaseIn:
                return(BounceEaseInNormalized);

            case EasingEnum.BounceEaseOut:
                return(BounceEaseOutNormalized);

            default:
                throw new UnityException("unknown type " + self);
            }
        }
Example #5
0
        /// <summary>
        /// todo: Still have bugs.
        /// </summary>
        public void FreeCutRect(EasingEnum easingEnum, int startTime, int endTime, Mathe.RawRectangleF startRect,
                                Mathe.RawRectangleF endRect)
        {
            if (_inRectTime.Max == int.MaxValue || endTime > _inRectTime.Max)
            {
                _inRectTime.Max = endTime;
                _inX.Target     = endRect.Left;
                _inY.Target     = endRect.Top;
                _inW.Target     = endRect.Right - endRect.Left;
                _inH.Target     = endRect.Bottom - endRect.Top;
            }

            if (_inRectTime.Min == int.MinValue || startTime < _inRectTime.Min)
            {
                _inRectTime.Min = startTime;
                _inX.Source     = startRect.Left;
                _inY.Source     = startRect.Top;
                _inW.Source     = startRect.Right - startRect.Left;
                _inH.Source     = startRect.Bottom - startRect.Top;
            }

            float ms = _watch.ElapsedMilliseconds;

            if (!IsFinished && ms <= _inRectTime.Min)
            {
                _inX.RealTimeToSource();
                _inY.RealTimeToSource();
                _inW.RealTimeToSource();
                _inH.RealTimeToSource();
            }

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                _inX.RealTime = startRect.Left + (float)easingEnum.Ease(t) * (endRect.Left - startRect.Left);
                _inY.RealTime = startRect.Top + (float)easingEnum.Ease(t) * (endRect.Top - startRect.Top);
                float r = startRect.Right + (float)easingEnum.Ease(t) * (endRect.Right - startRect.Right);
                float b = startRect.Bottom + (float)easingEnum.Ease(t) * (endRect.Bottom - startRect.Bottom);
                _inW.RealTime = r - _inX.RealTime;
                _inH.RealTime = b - _inY.RealTime;
            }

            if (ms >= _inRectTime.Max)
            {
                _inX.RealTimeToTarget();
                _inY.RealTimeToTarget();
                _inW.RealTimeToTarget();
                _inH.RealTimeToTarget();
            }
        }
Example #6
0
        /// <summary>
        /// Do not use with any MOVE or any SCALE at same time!
        /// </summary>
        public void FreeRect(EasingEnum easingEnum, int startTime, int endTime, Mathe.RawRectangleF startRect,
                             Mathe.RawRectangleF endRect)
        {
            if (_rectTime.Max == int.MaxValue || endTime > _rectTime.Max)
            {
                _rectTime.Max = endTime;
                _x.Target     = endRect.Left;
                _y.Target     = endRect.Top;
                _w.Target     = endRect.Right - endRect.Left;
                _h.Target     = endRect.Bottom - endRect.Top;
            }

            if (_rectTime.Min == int.MinValue || startTime < _rectTime.Min)
            {
                _rectTime.Min = startTime;
                _x.Source     = startRect.Left;
                _y.Source     = startRect.Top;
                _w.Source     = startRect.Right - startRect.Left;
                _h.Source     = startRect.Bottom - startRect.Top;
            }

            float ms = _offset;

            if (!IsFinished && ms <= _rectTime.Min)
            {
                _x.RealTimeToSource();
                _y.RealTimeToSource();
                _w.RealTimeToSource();
                _h.RealTimeToSource();
            }

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                _x.RealTime = startRect.Left + (float)easingEnum.Ease(t) * (endRect.Left - startRect.Left);
                _y.RealTime = startRect.Top + (float)easingEnum.Ease(t) * (endRect.Top - startRect.Top);
                float r = startRect.Right + (float)easingEnum.Ease(t) * (endRect.Right - startRect.Right);
                float b = startRect.Bottom + (float)easingEnum.Ease(t) * (endRect.Bottom - startRect.Bottom);
                _w.RealTime = r - _x.RealTime;
                _h.RealTime = b - _y.RealTime;
            }

            if (ms >= _rectTime.Max)
            {
                _x.RealTimeToTarget();
                _y.RealTimeToTarget();
                _w.RealTimeToTarget();
                _h.RealTimeToTarget();
            }
        }
Example #7
0
        /// <summary>
        /// Do not use with SCALE or FREERECT at same time!
        /// </summary>
        public override void ScaleVec(EasingEnum easingEnum, int startTime, int endTime, float startVx, float startVy, float endVx,
                                      float endVy)
        {
            if (_rectTime.Max == int.MaxValue || endTime > _rectTime.Max)
            {
                _rectTime.Max = endTime;
                _vx.Target    = endVx;
                _vy.Target    = endVy;
            }

            if (_rectTime.Min == int.MinValue || startTime < _rectTime.Min)
            {
                _rectTime.Min = startTime;
                _vx.Source    = startVx;
                _vy.Source    = startVy;
            }

            float ms = _watch.ElapsedMilliseconds;

            if (!IsFinished && ms <= _rectTime.Min)
            {
                _vx.RealTimeToSource();
                _vy.RealTimeToSource();
            }

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                _vx.RealTime = startVx + (float)easingEnum.Ease(t) * (endVx - startVx);
                _vy.RealTime = startVy + (float)easingEnum.Ease(t) * (endVy - startVy);
            }

            if (ms >= _rectTime.Max)
            {
                _vx.RealTimeToTarget();
                _vy.RealTimeToTarget();
            }
        }
Example #8
0
        /// <summary>
        /// Do not use with MOVEX or MOVEY at same time!
        /// </summary>
        public override void Move(EasingEnum easingEnum, int startTime, int endTime, Gdip.PointF startPoint, Gdip.PointF endPoint)
        {
            if (_rectTime.Max == int.MaxValue || endTime > _rectTime.Max)
            {
                _rectTime.Max = endTime;
                _x.Target     = endPoint.X;
                _y.Target     = endPoint.Y;
            }

            if (_rectTime.Min == int.MinValue || startTime < _rectTime.Min)
            {
                _rectTime.Min = startTime;
                _x.Source     = startPoint.X;
                _y.Source     = startPoint.Y;
            }

            float ms = _watch.ElapsedMilliseconds;

            if (!IsFinished && ms <= _rectTime.Min)
            {
                _x.RealTimeToSource();
                _y.RealTimeToSource();
            }

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                _x.RealTime = startPoint.X + (float)easingEnum.Ease(t) * (endPoint.X - startPoint.X);
                _y.RealTime = startPoint.Y + (float)easingEnum.Ease(t) * (endPoint.Y - startPoint.Y);
            }

            if (ms >= _rectTime.Max)
            {
                _x.RealTimeToTarget();
                _y.RealTimeToTarget();
            }
        }
Example #9
0
 public static double Ease(this EasingEnum easingEnum, double value)
 => easingEnum.ToEasingFunction().Invoke(value);
Example #10
0
 public Vector3Tween(float duration, Vector3 tweenFrom, Vector3 tweenTo, EasingEnum easingType, Action <Vector3> onUpdated, Action <CUnit> onCompleted = null)
     : base(duration, tweenFrom, tweenTo - tweenFrom, easingType, onUpdated, onCompleted)
 {
 }
Example #11
0
 public FloatTween(float duration, float tweenFrom, float tweenTo, EasingEnum easingType, Action <float> onUpdated, Action <CUnit> onCompleted = null)
     : base(duration, tweenFrom, tweenTo - tweenFrom, easingType, onUpdated, onCompleted)
 {
 }
Example #12
0
 public EasingEnum GetEasing(EasingEnum e)
 {
     return(easingOverride ? easing : e);
 }
Example #13
0
 Easings GetEasingClass(EasingEnum e)
 {
     return((Easings)System.Activator.CreateInstance(System.Reflection.Assembly.GetAssembly(typeof(Easings)).GetType("Uween." + e.ToString())));
 }
Example #14
0
        public static Func <double, double> ToEasingFunction(this EasingEnum easingEnum)
        {
            switch (easingEnum)
            {
            default:
            case EasingEnum.Linear: return(Linear);

            case EasingEnum.EasingIn:
            case EasingEnum.QuadIn: return(QuadIn);

            case EasingEnum.EasingOut:
            case EasingEnum.QuadOut: return(QuadOut);

            case EasingEnum.QuadInOut: return(QuadInOut);

            case EasingEnum.CubicIn: return(CubicIn);

            case EasingEnum.CubicOut: return(CubicOut);

            case EasingEnum.CubicInOut: return(CubicInOut);

            case EasingEnum.QuartIn: return(QuartIn);

            case EasingEnum.QuartOut: return(QuartOut);

            case EasingEnum.QuartInOut: return(QuartInOut);

            case EasingEnum.QuintIn: return(QuintIn);

            case EasingEnum.QuintOut: return(QuintOut);

            case EasingEnum.QuintInOut: return(QuintInOut);

            case EasingEnum.SineIn: return(SineIn);

            case EasingEnum.SineOut: return(SineOut);

            case EasingEnum.SineInOut: return(SineInOut);

            case EasingEnum.ExpoIn: return(ExpoIn);

            case EasingEnum.ExpoOut: return(ExpoOut);

            case EasingEnum.ExpoInOut: return(ExpoInOut);

            case EasingEnum.CircIn: return(CircIn);

            case EasingEnum.CircOut: return(CircOut);

            case EasingEnum.CircInOut: return(CircInOut);

            case EasingEnum.ElasticIn: return(ElasticIn);

            case EasingEnum.ElasticOut: return(ElasticOut);

            case EasingEnum.ElasticHalfOut: return(ElasticOutHalf);

            case EasingEnum.ElasticQuarterOut: return(ElasticOutQuarter);

            case EasingEnum.ElasticInOut: return(ElasticInOut);

            case EasingEnum.BackIn: return(BackIn);

            case EasingEnum.BackOut: return(BackOut);

            case EasingEnum.BackInOut: return(BackInOut);

            case EasingEnum.BounceIn: return(BounceIn);

            case EasingEnum.BounceOut: return(BounceOut);

            case EasingEnum.BounceInOut: return(BounceInOut);
            }
        }
 public abstract void ScaleVec(EasingEnum easingEnum, int startTime, int endTime, float startWidth,
                               float startHeight, float endWidth, float endHeight);
 public abstract void Rotate(EasingEnum easingEnum, int startTime, int endTime, float startDeg, float endDeg);
 public abstract void Move(EasingEnum easingEnum, int startTime, int endTime, Gdip.PointF startPoint,
                           Gdip.PointF endPoint);
 public abstract void Fade(EasingEnum easingEnum, int startTime, int endTime, float startOpacity,
                           float endOpacity);