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; } }