/// <summary> /// The clamp speed. /// </summary> /// <param name="entity"> /// The entity. /// </param> /// <param name="maximumXSpeed"> /// The maximum x speed. /// </param> /// <param name="maximumYSpeed"> /// The maximum y speed. /// </param> public void ClampSpeed(IHasVelocity entity, float?maximumXSpeed, float?maximumYSpeed) { if (maximumXSpeed != null) { if (entity.XSpeed < -Math.Abs(maximumXSpeed.Value)) { entity.XSpeed = -Math.Abs(maximumXSpeed.Value); } if (entity.XSpeed > Math.Abs(maximumXSpeed.Value)) { entity.XSpeed = Math.Abs(maximumXSpeed.Value); } } if (maximumYSpeed != null) { if (entity.YSpeed < -Math.Abs(maximumYSpeed.Value)) { entity.YSpeed = -Math.Abs(maximumYSpeed.Value); } if (entity.YSpeed > Math.Abs(maximumYSpeed.Value)) { entity.YSpeed = Math.Abs(maximumYSpeed.Value); } } }
public static float XPositionOfTime(this IHasVelocity velocity, double time) { float positionX = (float)time * velocity.Velocity * MULTIPLE; //positionX = positionX % Width; //inverse //position_x = -position_x + screenWidth + 10; //return positionX; return(positionX); }
/// <summary> /// The apply gravity. /// </summary> /// <param name="entity"> /// The entity. /// </param> /// <param name="xGravity"> /// The x gravity. /// </param> /// <param name="yGravity"> /// The y gravity. /// </param> public void ApplyGravity(IHasVelocity entity, float xGravity, float yGravity) { entity.XSpeed += xGravity; entity.YSpeed += yGravity; }
/// <summary> /// The clamp speed. /// </summary> /// <param name="entity"> /// The entity. /// </param> /// <param name="maximumXSpeed"> /// The maximum x speed. /// </param> /// <param name="maximumYSpeed"> /// The maximum y speed. /// </param> public void ClampSpeed(IHasVelocity entity, float? maximumXSpeed, float? maximumYSpeed) { if (maximumXSpeed != null) { if (entity.XSpeed < -Math.Abs(maximumXSpeed.Value)) { entity.XSpeed = -Math.Abs(maximumXSpeed.Value); } if (entity.XSpeed > Math.Abs(maximumXSpeed.Value)) { entity.XSpeed = Math.Abs(maximumXSpeed.Value); } } if (maximumYSpeed != null) { if (entity.YSpeed < -Math.Abs(maximumYSpeed.Value)) { entity.YSpeed = -Math.Abs(maximumYSpeed.Value); } if (entity.YSpeed > Math.Abs(maximumYSpeed.Value)) { entity.YSpeed = Math.Abs(maximumYSpeed.Value); } } }
public static Vector2 PositionOfTime(this IHasVelocity velocity, double time) { return(new Vector2(XPositionOfTime(velocity, time), 0)); }