/// <summary> /// Function used to set our animation parameters /// </summary> /// <param name="transition">Type of interpolation function to utilize</param> /// <param name="startPosition"> Our start position</param> /// <param name="endPosition">Our end position</param> /// <param name="durationInSeconds">How many seconds the animation should take</param> public void Animate(TypeOfTransition transition, Vector3 startPosition, Vector3 endPosition, double durationInSeconds) { currentTransition = transition; switch (kindOfAnimation) { case VariableToAnimate.floatValue: singleValueTweener = new Tweener(startPosition.X, endPosition.X, TimeSpan.FromSeconds(durationInSeconds), GetTweeningFunction()); singleValueTweener.PositionChanged += delegate(float newPosition) { returnValue = new Vector3(newPosition, 0, 0); }; break; case VariableToAnimate.Vector2Value: vectorTwoTweener = new Vector2Tweener(new Vector2(startPosition.X, startPosition.Y), new Vector2(endPosition.X, endPosition.Y), TimeSpan.FromSeconds(durationInSeconds), GetTweeningFunction()); vectorTwoTweener.PositionChanged += delegate(Vector2 newPosition) { returnValue = new Vector3(newPosition.X, newPosition.Y, 0); }; break; case VariableToAnimate.Vector3Value: vector3Tweener = new Vector3Tweener(startPosition, endPosition, TimeSpan.FromSeconds(durationInSeconds), GetTweeningFunction()); vector3Tweener.PositionChanged += delegate(Vector3 newPosition) { returnValue = newPosition; }; break; default: vector3Tweener = new Vector3Tweener(startPosition, endPosition, TimeSpan.FromSeconds(durationInSeconds), GetTweeningFunction()); vector3Tweener.PositionChanged += delegate(Vector3 newPosition) { returnValue = newPosition; }; break; } }
/// <summary> /// Function used to set our animation parameters /// </summary> /// <param name="transition">Type of interpolation function to utilize</param> /// <param name="startPosition"> Our start position</param> /// <param name="endPosition">Our end position</param> /// <param name="durationInSeconds">How many seconds the animation should take</param> public void Animate(TypeOfTransition transition, Vector3 startPosition, Vector3 endPosition, double durationInSeconds) { currentTransition = transition; switch (kindOfAnimation) { case VariableToAnimate.floatValue: singleValueTweener = new Tweener(startPosition.X, endPosition.X, TimeSpan.FromSeconds(durationInSeconds), GetTweeningFunction()); singleValueTweener.PositionChanged += delegate(float newPosition) { returnValue = new Vector3(newPosition, 0, 0); }; break; case VariableToAnimate.Vector2Value: vectorTwoTweener = new Vector2Tweener(new Vector2(startPosition.X, startPosition.Y), new Vector2(endPosition.X, endPosition.Y), TimeSpan.FromSeconds(durationInSeconds), GetTweeningFunction()); vectorTwoTweener.PositionChanged += delegate(Vector2 newPosition) { returnValue = new Vector3(newPosition.X, newPosition.Y, 0); }; break; case VariableToAnimate.Vector3Value: vector3Tweener = new Vector3Tweener(startPosition, endPosition, TimeSpan.FromSeconds(durationInSeconds), GetTweeningFunction()); vector3Tweener.PositionChanged += delegate(Vector3 newPosition) { returnValue = newPosition;}; break; default: vector3Tweener = new Vector3Tweener(startPosition, endPosition, TimeSpan.FromSeconds(durationInSeconds), GetTweeningFunction()); vector3Tweener.PositionChanged += delegate(Vector3 newPosition) { returnValue = newPosition;}; break; } }