Exemple #1
0
        void IUpdateable.Update(TimeSpan elapsedInFrame)
        {
            FrameStartPosition = ObjectToMove.Position.Copy();

            foreach (var adjuster in MotionAdjusters)
            {
                adjuster.Update(ObjectToMove, MotionVector);
            }


            foreach (var multiplier in MotionMultipliers)
            {
                MotionVector.X.TargetScale = multiplier.GetTargetMod();
                MotionVector.X.DeltaScale  = multiplier.GetDeltaMod();
                MotionVector.Y.TargetScale = multiplier.GetTargetMod();
                MotionVector.Y.DeltaScale  = multiplier.GetDeltaMod();
            }

            MotionVector.Adjust(elapsedInFrame);


            var motion = CurrentMotionPerSecond;

            FrameVelocity = CurrentMotionPerSecond.Scale(elapsedInFrame.TotalSeconds);
            ObjectToMove.Position.Translate(FrameVelocity);
        }