Squared.Game.Animation.Animator.SetSpeed C# (CSharp) Method

SetSpeed() public method

public SetSpeed ( float speed ) : void
speed float
return void
        public void SetSpeed(float speed)
        {
            _Speed = (long)Math.Round(speed * 10000);
            _SuspendUntil = _SuspendSince + (_SuspendDuration * 10000 / _Speed);
        }

Usage Example

Example #1
0
        public void AnimationSpeedTest()
        {
            var a = new Animator {
                TimeProvider = TimeProvider
            };

            a.SetAnimation(BasicAnimation);
            a.SetSpeed(2.0f);

            a.Update();
            Assert.AreEqual(0, a.Frame);

            TimeProvider.Advance(5);
            a.Update();
            Assert.AreEqual(0, a.Frame);

            TimeProvider.Advance(25);
            a.Update();
            Assert.AreEqual(1, a.Frame);

            TimeProvider.Advance(25);
            a.Update();
            Assert.AreEqual(2, a.Frame);

            TimeProvider.Advance(25);
            a.Update();
            Assert.AreEqual(0, a.Frame);

            a.SetSpeed(1.0f);

            TimeProvider.Advance(100);
            a.Update();
            Assert.AreEqual(2, a.Frame);
        }