Exemplo n.º 1
0
    }    //buildRoom

    //Builds a corridor
    private void buildCorridor(p2D start, int direction)
    {
        //The start and end coordinates are saved
        p2D end = new p2D(0, 0);
        int x   = start.getX();
        int y   = start.getY();

        switch (direction)
        {
        case 1:         //East
            for (int i = x; i <= x + corridorLength; i++)
            {
                dungeonMaze[i, y] = 1;
                end.setP(i, y);
            }
            break;

        case 3:         //West
            for (int i = x; i >= x - corridorLength; i--)
            {
                dungeonMaze[i, y] = 1;
                end.setP(i, y);
            }
            break;

        case 0:         //North
            for (int i = y; i <= y + corridorLength; i++)
            {
                dungeonMaze[x, i] = 1;
                end.setP(x, i);
            }
            break;

        case 2:         //South
            for (int i = y; i >= y - corridorLength; i--)
            {
                dungeonMaze[x, i] = 1;
                end.setP(x, i);
            }
            break;

        default:
            //System.err.println("BuildCorridor end 0,0 added");
            break;
        }

        //The start and end are added to the list or doorwayss
        doorways.Add(end);
        doorways.Add(start);
    }    //buildCorridor
Exemplo n.º 2
0
    public static p2D translateDirectional2(p2D coord, int delta, int direction)
    {
        p2D translated = new p2D(int.MaxValue, int.MaxValue);

        translated.setP(coord.X, coord.Y);

        switch (direction)
        {
        case 0:
            translated.setY(coord.Y + delta);
            break;

        case 1:
            translated.setX(coord.X + delta);
            break;

        case 2:
            translated.setY(coord.Y - delta);
            break;

        case 3:
            translated.setX(coord.X - delta);
            break;

        default:
            //Debug.Log(direction + " " + coord.X + ", " + coord.Y + " Not translated, max,max returned");
            break;
        }
        return(translated);
    }