示例#1
0
        /// <summary>
        /// 方向の両脇に位置するタイル情報を返す。
        /// このメソッドは方向が斜めの場合にのみ対応する特殊なメソッド
        /// 例えば左下の場合は左と下の2種類のタイル情報が得られる。
        /// </summary>
        protected (IReadOnlyTile, IReadOnlyTile) GetTilesByDiagonal(Direction direction)
        {
            DungeonManager DM = DungeonManager.Instance;

            // 斜め方向以外の場合はnullを返す
            if (direction.IsStraight || direction.IsNeutral)
            {
                return(null, null);
            }

            // 斜め方向の場合はその両サイドに該当するタイル情報を返す
            IReadOnlyTile tile1 = (direction.hasLeft)
        ? DM.GetTile(Coord, Direction.left)
        : DM.GetTile(Coord, Direction.right);

            IReadOnlyTile tile2 = (direction.hasUp)
        ? DM.GetTile(Coord, Direction.up)
        : DM.GetTile(Coord, Direction.down);

            return(tile1, tile2);
        }
示例#2
0
        //-------------------------------------------------------------------------
        // 便利系

        /// <summary>
        /// 指定方向が障害物かどうか
        /// </summary>
        /// <param name="direction"></param>
        /// <returns></returns>
        protected bool IsObstacle(Direction direction)
        {
            IReadOnlyTile next = DungeonManager.Instance.GetTile(Coord, direction);

            return(next.IsObstacle);
        }