public Tuple UpdatePosition()

in WhackAMole.UWPClient/Services/BaseMovementEngine.cs [93:123]


        public Tuple<Point,Point> UpdatePosition(Point start, Point vector)
        {
            if (MaxX <= 0 || MaxY <= 0)
                throw new InvalidOperationException("maxx and/or maxy cannot be zero or negative");

            var newPoint = new Point();
            var newX = start.X + vector.X;
            var newY = start.Y + vector.Y;

            if (newY > MaxY || newY < 0)
            {
                
                var y = (newY < 0) ? 0 : MaxY;
                newPoint = new Point(start.X, y); ;
                vector.Y = vector.Y * -1;
            }
            else
                newPoint.X = newX;


            if (newX > MaxX || newX < 0)
            {
                var x = (newX < 0) ? 0 : MaxX;
                newPoint = new Point(x, start.Y);
                vector.X = vector.X * -1;
            }
            else
                newPoint.Y = newY;
           
            return new Tuple<Point, Point>(newPoint, vector);
        }