MoveTo.cs 890 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using Urho;
  2. namespace Urho.Actions
  3. {
  4. public class MoveTo : MoveBy
  5. {
  6. protected Vector3 EndPosition;
  7. #region Constructors
  8. public MoveTo (float duration, Vector3 position) : base (duration, position)
  9. {
  10. EndPosition = position;
  11. }
  12. #endregion Constructors
  13. public Vector3 PositionEnd {
  14. get { return EndPosition; }
  15. }
  16. protected internal override ActionState StartAction(Node target)
  17. {
  18. return new MoveToState (this, target);
  19. }
  20. }
  21. public class MoveToState : MoveByState
  22. {
  23. public MoveToState (MoveTo action, Node target)
  24. : base (action, target)
  25. {
  26. StartPosition = target.Position;
  27. PositionDelta = action.PositionEnd - target.Position;
  28. }
  29. public override void Update (float time)
  30. {
  31. if (Target != null)
  32. {
  33. Vector3 newPos = StartPosition + PositionDelta * time;
  34. Target.Position = newPos;
  35. PreviousPosition = newPos;
  36. }
  37. }
  38. }
  39. }