public void SetDesiredYPosition(float start, float finish, float transitionTime = 1.5f) { yWorker = new EasingWorker( Easings.EaseOutQuint, value => { Position = new Vector2f(Position.X, (float)value); }, transitionTime, start, finish); }
public void SetDesiredXPosition(float start, float finish, float transitionTime = 1.5f) { xWorker = new EasingWorker( Easings.EaseInOutCirc, value => { Position = new Vector2f((float)value, Position.Y); }, transitionTime, start, finish); }
public void OnUpdate(float deltaT) { if (!IsAlive) { xWorker = null; return; } if (timeAlive > Duration - TransitionTime && !easeOutStarted) { SetDesiredXPosition(Position.X, initialPosition.X); easeOutStarted = true; } xWorker.OnUpdate(deltaT); yWorker?.OnUpdate(deltaT); timeAlive += deltaT; visual.OnUpdate(deltaT); }