/// <summary> /// Called when animation starts. /// </summary> protected override void OnStartAnimation() { m_startVector = m_targetObject.Position; Vector3 moveVector = m_targetVector - m_startVector; // Create move-helper individually if (m_paramDuration > TimeSpan.Zero) { m_moveHelper = new MovementAnimationHelper( new MovementSpeed(moveVector, m_paramDuration), moveVector); } else if (m_paramMoveSpeed != MovementSpeed.Empty) { m_moveHelper = new MovementAnimationHelper(m_paramMoveSpeed, moveVector); } else { m_moveHelper = new MovementAnimationHelper( new MovementSpeed(moveVector, TimeSpan.FromMilliseconds(1.0)), moveVector); } // Change the type of this animation in the base class base.ChangeToFixedTime(m_moveHelper.MovementTime); }
/// <summary> /// Initializes a new instance of the <see cref="Move3DByAnimation"/> class. /// </summary> /// <param name="targetObject">The target object.</param> /// <param name="moveVector">The move vector.</param> /// <param name="moveSpeed">The speed which is used for movement calculation.</param> public Move3DByAnimation(IAnimatableObjectPosition targetObject, Vector3 moveVector, MovementSpeed moveSpeed) : base(targetObject) { m_targetObject = targetObject; m_moveVector = moveVector; m_moveHelper = new MovementAnimationHelper(moveSpeed, moveVector); // Switch animation to fixed-time type base.ChangeToFixedTime(m_moveHelper.MovementTime); }
/// <summary> /// Initializes a new instance of the <see cref="Move2DByAnimation"/> class. /// </summary> /// <param name="targetObject">The target object.</param> /// <param name="moveVector">The move vector.</param> /// <param name="moveSpeed">The speed which is used for movement calculation.</param> public Move2DByAnimation(IAnimatableObjectPosition2D targetObject, Vector2 moveVector, MovementSpeed moveSpeed) : base(targetObject) { _targetObject = targetObject; _moveVector = moveVector; _moveHelper = new MovementAnimationHelper(moveSpeed, new Vector3(moveVector, 0f)); // Switch animation to fixed-time type this.ChangeToFixedTime(_moveHelper.MovementTime); }
public void Movement_SpeedBased_FixedTime() { Vector3 movementVector = new Vector3(10f, 0f, 8f); MovementSpeed movementSpeed = new MovementSpeed(movementVector, TimeSpan.FromSeconds(5.0)); MovementAnimationHelper animHelper = new MovementAnimationHelper(movementSpeed, movementVector); Assert.True(animHelper.MovementTime == TimeSpan.FromSeconds(5.0)); Assert.True(animHelper.AccelerationTime == TimeSpan.Zero); Assert.True(animHelper.DecelerationTime == TimeSpan.Zero); }
/// <summary> /// Initializes a new instance of the <see cref="Move2DByAnimation" /> class. /// </summary> /// <param name="targetObject">The target object.</param> /// <param name="moveVector">The move vector.</param> /// <param name="duration">The duration.</param> public Move2DByAnimation(IAnimatableObjectPosition2D targetObject, Vector2 moveVector, TimeSpan duration) : base(targetObject) { m_targetObject = targetObject; m_moveVector = moveVector; m_moveHelper = new MovementAnimationHelper( new MovementSpeed(new Vector3(moveVector, 0f), duration), new Vector3(moveVector, 0f)); // Switch animation to fixed-time type base.ChangeToFixedTime(m_moveHelper.MovementTime); }
/// <summary> /// Initializes a new instance of the <see cref="Move3DByAnimation" /> class. /// </summary> /// <param name="targetObject">The target object.</param> /// <param name="moveVector">The move vector.</param> /// <param name="duration">The duration.</param> public Move3DByAnimation(IAnimatableObjectPosition targetObject, Vector3 moveVector, TimeSpan duration) : base(targetObject) { _targetObject = targetObject; _moveVector = moveVector; _moveHelper = new MovementAnimationHelper( new MovementSpeed(moveVector, duration), moveVector); // Switch animation to fixed-time type this.ChangeToFixedTime(_moveHelper.MovementTime); }
public void Movemenet_SpeedBased() { MovementSpeed palletConveyorSpeed = new MovementSpeed(0.3f); MovementSpeed trayConveyorSpeed = new MovementSpeed(0.8f); MovementAnimationHelper animHelper1 = new MovementAnimationHelper(palletConveyorSpeed, new Vector3(5f, 0f, 0f)); MovementAnimationHelper animHelper2 = new MovementAnimationHelper(palletConveyorSpeed, new Vector3(3f, 4f, 2f)); MovementAnimationHelper animHelper3 = new MovementAnimationHelper(trayConveyorSpeed, new Vector3(5f, 0f, 0f)); Assert.True((int)animHelper1.MovementTime.TotalMilliseconds == 16667); Assert.True((int)animHelper2.MovementTime.TotalMilliseconds == 17951); Assert.True((int)animHelper3.MovementTime.TotalMilliseconds == 6250); }
public void Movement_AccDecFull_ShortRun() { // Configuration var movementSpeed = new MovementSpeed(1.5f, 0.8f, -0.4f); var movementVector = new Vector3(0f, 0f, -0.14f); // Action var animHelper = new MovementAnimationHelper(movementSpeed, movementVector); // Asserts Assert.IsTrue(animHelper.AccelerationTime > TimeSpan.Zero); Assert.IsTrue(animHelper.DecelerationTime > TimeSpan.Zero); Assert.IsTrue(animHelper.DecelerationTime > animHelper.AccelerationTime); Assert.IsTrue(animHelper.FullSpeedTime == TimeSpan.Zero); Assert.IsTrue(animHelper.MovementTime < TimeSpan.FromSeconds(15.0)); }
public void Movement_AccDecFull_LongRun() { // Configuration MovementSpeed movementSpeed = new MovementSpeed(1.5f, 0.6f, -0.5f); Vector3 movementVector = new Vector3(10f, 0f, 8f); // Action MovementAnimationHelper animHelper = new MovementAnimationHelper(movementSpeed, movementVector); // Asserts Assert.True(animHelper.AccelerationTime > TimeSpan.Zero); Assert.True(animHelper.DecelerationTime > TimeSpan.Zero); Assert.True(animHelper.DecelerationTime > animHelper.AccelerationTime); Assert.True(animHelper.FullSpeedTime > animHelper.AccelerationTime); Assert.True(animHelper.FullSpeedTime > animHelper.DecelerationTime); Assert.True(animHelper.MovementTime < TimeSpan.FromSeconds(15.0)); }
/// <summary> /// Called when the FixedTime animation has finished. /// (Sets final state to the target object and clears all runtime values). /// </summary> protected override void OnFixedTimeAnimationFinished() { m_targetObject.Position = m_targetVector; m_startVector = Vector3.Zero; m_moveHelper = null; }