Пример #1
0
 public void CreateBSP(SubDungeon subDungeon)
 {
     //Debug.Log("Splitting sub-dungeon " + subDungeon.debugId + ": " + subDungeon.rect);
     if (subDungeon.isLeaf())
     {
         // if the sub-dungeon is too large
         if (subDungeon.rect.width > maxSize || subDungeon.rect.height > maxSize || Random.Range(0.0f, 1.0f) > 0.25)
         {
             if (subDungeon.Split(minSize, maxSize))
             {
                 //Debug.Log("Splitted sub-dungeon " + subDungeon.debugId + " in "
                 //+ subDungeon.left.debugId + ": " + subDungeon.left.rect + ", "
                 //+ subDungeon.right.debugId + ": " + subDungeon.right.rect);
                 CreateBSP(subDungeon.left);
                 CreateBSP(subDungeon.right);
             }
         }
     }
 }
Пример #2
0
 public void DrawRooms(SubDungeon subDungeon)
 {
     if (subDungeon == null)
     {
         return;
     }
     if (subDungeon.isLeaf())
     {
         for (int i = (int)subDungeon.room.x; i < subDungeon.room.xMax; i++)
         {
             for (int j = (int)subDungeon.room.y; j < subDungeon.room.yMax; j++)
             {
                 GameObject instance = Instantiate(floorTile, new Vector3(i, j, 0f), Quaternion.identity) as GameObject;
                 instance.transform.SetParent(transform);
                 positionsFloor[i, j] = instance;
             }
         }
     }
     else
     {
         DrawRooms(subDungeon.left);
         DrawRooms(subDungeon.right);
     }
 }