public override void UpdateAnimation(float delta) { if (m_currentAnimation != null) { m_currentAnimation.Update(delta); } }
public void OnceBackwardsTest() { var modelBoneInstances = NewDefaultModelBoneInstances(); var animation = NewBasicAnimationInstance(); var instance = new AnimationInstance(modelBoneInstances, animation, AnimationMode.OnceBackwards, AnimationFlags.StartFrameLast, null, new QuoteUnquoteRandom()); instance.Play(); var time = TimeInterval.Zero; for (var i = 4; i >= 0; i--) { instance.Update(time); time = new TimeInterval(time.TotalTime + TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1)); Assert.Equal(i, modelBoneInstances[0].AnimatedOffset.Translation.X); } }
public void StartAtEndManualTest() { var modelBoneInstances = NewDefaultModelBoneInstances(); var animation = NewBasicAnimationInstance(); var instance = new AnimationInstance(modelBoneInstances, animation, AnimationMode.Manual, AnimationFlags.StartFrameLast, null, new QuoteUnquoteRandom()); instance.Play(); var time = TimeInterval.Zero; for (var i = 0; i < 5; i++) { instance.Update(time); time = new TimeInterval(time.TotalTime + TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1)); // always show the last frame Assert.Equal(4, modelBoneInstances[0].AnimatedOffset.Translation.X); } }
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 Update(float delta) { groupInstance.Update(delta); }