Ejemplo n.º 1
0
 /// <summary>
 /// エリアデータを設定する
 /// </summary>
 /// <param name="dungeonData"></param>
 /// <param name="ad">エリアデータ</param>
 /// <returns>ダンジョンデータ</returns>
 private int[,] SetArea(
     int [,] dungeonData,
     cAreaData ad
     )
 {
     // 部屋設定
     for (int y = ad.StartY; y <= ad.EndY; y++)
     {
         for (int x = ad.StartX; x <= ad.EndX; x++)
         {
             // X軸分割線、その他は部屋
             if (x == ad.StartX)
             {
                 dungeonData[x, y] = ad.SplitY ? SPLIT : ROOM;
             }
             else if (y == ad.StartY)
             {
                 dungeonData[x, y] = ad.SplitX ? SPLIT : ROOM;
             }
             else
             {
                 // 部屋
                 dungeonData[x, y] = ROOM;
             }
         }
     }
     return(dungeonData);
 }
Ejemplo n.º 2
0
            /// <summary>
            /// 対象エリア番号に隣接するエリアを取得する
            /// </summary>
            /// <param name="adList">エリアデータリスト</param>
            /// <param name="areaNo">対象エリア番号</param>
            /// <returns>エリアリスト</returns>
            private IEnumerable <cAreaData> GetAdjacentAreaY(
                IEnumerable <cAreaData> adList,
                int areaNo
                )
            {
                // エリアデータ番号のcAreaDataを取得する
                cAreaData ad = adList.Where(x => x.AreaNo == areaNo).Last();

                // x,yを取得する
                int px = ad.StartX;
                int py = ad.StartY;

                return(adList.Where(
                           x => x.StartX == px && x.StartY == py + AreaSize
                           ));
            }