コード例 #1
0
        /// <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);
                }
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 /// <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;
 }
コード例 #4
0
 /// <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;
 }
コード例 #5
0
        /// <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);
                }
            }
        }
コード例 #6
0
 public static Vector2 PositionOfTime(this IHasVelocity velocity, double time)
 {
     return(new Vector2(XPositionOfTime(velocity, time), 0));
 }