Beispiel #1
0
        public Snake(Vector2 _origin, Point position, Texture2D _head, Texture2D _straightBody, Texture2D _cornerBody, Texture2D _tail)
        {
            origin = _origin;
            headImage = _head;
            straightBodyImage = _straightBody;
            cornerBodyImage = _cornerBody;
            tailImage = _tail;

            Point pos = position;

            head = new SnakeHead(headImage, origin, pos, Direction.Up);
            body = new List<SnakeBody>();
            pos.Y++;
            body.Add(new SnakeBody(straightBodyImage, origin, pos, Direction.Up, Direction.Up));
            pos.Y++;
            tail = new SnakeTail(tailImage, origin, pos, Direction.Up);
        }
Beispiel #2
0
        //蛇的最短长度为3
        public Snake(Vector2 _origin, Point position, Texture2D _head, Texture2D _straightBody, Texture2D _cornerBody, Texture2D _tail, Direction _direction, int length)
        {
            origin = _origin;
            headImage = _head;
            straightBodyImage = _straightBody;
            cornerBodyImage = _cornerBody;
            tailImage = _tail;

            Point pos = position;

            if (length < 3)
                length = 3;

            int x, y;
            switch (_direction)
            {
                case Direction.Up:
                    x = 0;
                    y = -1;
                    break;
                case Direction.Down:
                    x = 0;
                    y = 1;
                    break;
                case Direction.Left:
                    x = -1;
                    y = 0;
                    break;
                case Direction.Right:
                    x = 1;
                    y = 0;
                    break;
                default:
                    x = 0;
                    y = 0;
                    break;
            }

            head = new SnakeHead(headImage, origin, pos, _direction);
            body = new List<SnakeBody>();
            for (int i = 0; i < length - 2; i++)
            {
                pos.X += x;
                pos.Y += y;
                body.Add(new SnakeBody(straightBodyImage,origin,pos,_direction,_direction));
            }

            pos.X += x;
            pos.Y += y;
            tail = new SnakeTail();
        }