Пример #1
0
        void IUpdateable.Update(TimeSpan elapsedInFrame)
        {
            FrameStartPosition.Set(ObjectToMove.Position);

            foreach (var force in Forces)
            {
                if (force.Active)
                {
                    MotionPerSecond = force.AdjustMotionPerSecond(elapsedInFrame, MotionPerSecond);
                }
            }

            FrameVelocity = CalcFrameVelocity(elapsedInFrame);

            ObjectToMove.Position.Center = ObjectToMove.Position.Center.Translate(FrameVelocity);

            if (MotionPerSecond.X != 0 || MotionPerSecond.Y != 0)
            {
                LastNonZeroMotion = MotionPerSecond;
            }
        }
Пример #2
0
 /// <summary>
 /// Translates both the current and frame start positions
 /// </summary>
 /// <param name="adjustment"></param>
 public void CorrectPosition(Vector2 adjustment)
 {
     ObjectToMove.Position.Translate(adjustment);
     FrameStartPosition.Translate(adjustment);
 }