示例#1
0
        private void MovePlayer()
        {
            int maxXpos = pictureBox1.Size.Width / gameSettings.GetWidth();
            int maxYpos = pictureBox1.Size.Height / gameSettings.GetHeight();

            for (int i = SnakeBody.Count - 1; i >= 0; i--)
            {
                if (i == 0)
                {
                    switch (gameSettings.GetDirection())
                    {
                    case Directions.Right:
                        SnakeBody[i].SetXCoordinate(SnakeBody[i].GetXCoordinate() + 1);
                        break;

                    case Directions.Left:
                        SnakeBody[i].SetXCoordinate(SnakeBody[i].GetXCoordinate() - 1);
                        break;

                    case Directions.Up:
                        SnakeBody[i].SetYCoordinate(SnakeBody[i].GetYCoordinate() - 1);
                        break;

                    case Directions.Down:
                        SnakeBody[i].SetYCoordinate(SnakeBody[i].GetYCoordinate() + 1);
                        break;
                    }

                    CheckCollisionWithBorder(maxXpos, maxYpos, SnakeBody[i]);

                    CheckCollisionWithSelf(SnakeBody[i]);

                    CheckCollisionWithFood();
                }
                else
                {
                    MoveSnake(SnakeBody[i], SnakeBody[i - 1]);
                }
            }
        }