/// <summary>
        /// If there are already body parts than create new based on the localization of the last one.
        /// </summary>
        /// <param name="previousSquare">Last snake body part</param>
        /// <param name="thisSquare">New body part</param>
        /// <returns></returns>
        public SnakeSquare CreateSquare(SnakeSquare previousSquare, SnakeSquare thisSquare)
        {
            if (previousSquare.CurrentMovement == SnakeMovement.Up)
            {
                thisSquare.ChangeMovement(SnakeMovement.Up);

                thisSquare.Y = previousSquare.Y + 10;
                thisSquare.X = previousSquare.X;
            }
            else if (previousSquare.CurrentMovement == SnakeMovement.Down)
            {
                thisSquare.ChangeMovement(SnakeMovement.Down);

                thisSquare.Y = previousSquare.Y - 10;
                thisSquare.X = previousSquare.X;
            }
            else if (previousSquare.CurrentMovement == SnakeMovement.Right)
            {
                thisSquare.ChangeMovement(SnakeMovement.Right);


                thisSquare.Y = previousSquare.Y;
                thisSquare.X = previousSquare.X - 10;
            }
            else if (previousSquare.CurrentMovement == SnakeMovement.Left)
            {
                thisSquare.ChangeMovement(SnakeMovement.Left);


                thisSquare.Y = previousSquare.Y;
                thisSquare.X = previousSquare.X + 10;
            }
            return(thisSquare);
        }
        /// <summary>
        /// If there are no other body parts than create a new one based on the localization of the snake
        /// </summary>
        /// <param name="snake">Player</param>
        /// <param name="thisSquare">New body part</param>
        /// <returns></returns>
        public SnakeSquare CreateSquare(Snake snake, SnakeSquare thisSquare)
        {
            var previousSquare = new SnakeSquare()
            {
                X = snake.X,
                Y = snake.Y,
                CurrentMovement = snake.CurrentMovement
            };

            return(CreateSquare(previousSquare, thisSquare));
        }
Beispiel #3
0
        /// <summary>
        /// If there are no other squares then move the square according to the snake
        /// </summary>
        /// <param name="snake">Player</param>
        /// <param name="thisSquare">This square</param>
        /// <returns></returns>
        public SnakeSquare MoveSquare(Snake snake, SnakeSquare thisSquare)
        {
            var previousSquare = new SnakeSquare()
            {
                X = snake.X - snake.XSpeed,
                Y = snake.Y - snake.YSpeed,
                CurrentMovement = snake.CurrentMovement
            };

            return(MoveSquare(previousSquare, thisSquare));
        }