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(); }
public override void Deactivate() { _animationInstance.Stop(); }