public void OnceBackwardsRandomStartTest(int rngSeed)
        {
            var modelBoneInstances = NewDefaultModelBoneInstances();
            var animation          = NewBasicAnimationInstance();
            var random             = new QuoteUnquoteRandom(rngSeed);

            var instance = new AnimationInstance(modelBoneInstances, animation, AnimationMode.OnceBackwards,
                                                 AnimationFlags.RandomStart, null, random);

            instance.Play();

            var   time     = TimeInterval.Zero;
            float?previous = null;

            for (var i = 5; i > 0; i--)
            {
                instance.Update(time);
                time = new TimeInterval(time.TotalTime + TimeSpan.FromSeconds(1),
                                        TimeSpan.FromSeconds(1));
                if (previous is null)
                {
                    previous = modelBoneInstances[0].AnimatedOffset.Translation.X;
                    continue;
                }

                var target = previous.Value - 1;
                if (target < 0)
                {
                    target = 0;
                }

                Assert.Equal(target, modelBoneInstances[0].AnimatedOffset.Translation.X, new ToleranceEqualityComparer(0.001f));
                previous = modelBoneInstances[0].AnimatedOffset.Translation.X;
            }
            instance.Stop();
        }
Beispiel #2
0
 public override void Deactivate()
 {
     _animationInstance.Stop();
 }