From acea7b2e728787a0d83bbf83c8c1f042d2c32e7e Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Mon, 3 Jun 2024 10:15:45 +0800 Subject: + plugins project --- .../MonoGame.Extended.Tweening/LinearTween.cs | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Plugins/MonoGame.Extended/source/MonoGame.Extended.Tweening/LinearTween.cs (limited to 'Plugins/MonoGame.Extended/source/MonoGame.Extended.Tweening/LinearTween.cs') diff --git a/Plugins/MonoGame.Extended/source/MonoGame.Extended.Tweening/LinearTween.cs b/Plugins/MonoGame.Extended/source/MonoGame.Extended.Tweening/LinearTween.cs new file mode 100644 index 0000000..8469a13 --- /dev/null +++ b/Plugins/MonoGame.Extended/source/MonoGame.Extended.Tweening/LinearTween.cs @@ -0,0 +1,23 @@ +namespace MonoGame.Extended.Tweening; + +public class LinearTween: Tween + where T: struct +{ + private T _range; + + internal LinearTween(object target, float duration, float delay, TweenMember member, T endValue) : base(target, duration, delay, member, endValue) + { + } + + protected override void Initialize() + { + base.Initialize(); + _range = LinearOperations.Subtract(_endValue, _startValue); + } + + protected override void Interpolate(float n) + { + var value = LinearOperations.Add(_startValue, LinearOperations.Multiply(_range, n)); + Member.Value = value; + } +} -- cgit v1.1-26-g67d0