LinearTween.cs 633 B

1234567891011121314151617181920212223
  1. namespace MonoGame.Extended.Tweening;
  2. public class LinearTween<T>: Tween<T>
  3. where T: struct
  4. {
  5. private T _range;
  6. internal LinearTween(object target, float duration, float delay, TweenMember<T> member, T endValue) : base(target, duration, delay, member, endValue)
  7. {
  8. }
  9. protected override void Initialize()
  10. {
  11. base.Initialize();
  12. _range = LinearOperations<T>.Subtract(_endValue, _startValue);
  13. }
  14. protected override void Interpolate(float n)
  15. {
  16. var value = LinearOperations<T>.Add(_startValue, LinearOperations<T>.Multiply(_range, n));
  17. Member.Value = value;
  18. }
  19. }