コード例 #1
0
    Corridor createCorridorsInBetween(Room room1, Room room2, DungeonNode endNode = null, DungeonNode startNode = null, int roomNumber = 1)
    {
        List <FloorCell> corridorCells         = PathFinding.Astar(room1.getCentricFloorCell(), room2.getCentricFloorCell(), dungeonCells, endNode);
        List <FloorCell> filteredCorridorCells = new List <FloorCell>();

        foreach (FloorCell cell in corridorCells)
        {
            if (cell.type != FloorCell.FloorCellType.ROOM_CELL)
            {
                cell.type = FloorCell.FloorCellType.CORRIDOR_CELL;
                filteredCorridorCells.Add(cell);
            }
        }

        // Create the corridor object
        Corridor corridor = new Corridor();

        corridor.originRoom = room1;
        corridor.destRoom   = room2;
        corridor.setCorridorCells(filteredCorridorCells);

        room1.exitCorridors.Add(corridor);
        room2.exitCorridors.Add(corridor);

        return(corridor);
        //Debug.Log("Pasillos de la sala 1 " + room1.exitCorridors.Count + " pasillos de la sala 2 " + room2.exitCorridors.Count);
    }
コード例 #2
0
 void Start()
 {
     // path = PathFinding.BreadthWise(start, end);
     path    = PathFinding.Astar(start, end);
     current = 0;
 }