Exemple #1
0
        /// <summary>
        /// 根据xml结点创建地图元素
        /// </summary>
        /// <param name="xmlNode">xml结点</param>
        /// <returns>地图结点元素</returns>
        public static ElementNode GetNode(XElement xmlNode)
        {
            Background back = Background.CreateInstance(xmlNode.Element("oneBack"), Coord.Empty);
            MapEvent   eve  = MapEvent.CreateInstance(xmlNode.Element("oneEvent"), Coord.Empty);

            return(new ElementNode(back, eve));
        }
Exemple #2
0
        /// <summary>
        /// 加载地图层
        /// </summary>
        /// <param name="oneFloorArgs">地图层参数</param>
        /// <param name="oneFloor">待加载的楼层对象</param>
        private static void LoadBackLayer(XElement oneFloorArgs, FloorNode oneFloor)
        {
            XElement floorBackArgs = oneFloorArgs.Element("backLayer");

            for (int row = 0; row < oneFloor.FloorSize.Row; row++)
            {
                //这里引入中间变量,为了提高查询速度
                XElement rowBackArgs = floorBackArgs.Elements("oneRow").ElementAt(row);
                for (int col = 0; col < oneFloor.FloorSize.Col; col++)
                {
                    Coord pos = new Coord(col, row);
                    try
                    {
                        oneFloor.BackMap[row, col] = Background.CreateInstance(
                            rowBackArgs.Elements("oneBack").ElementAt(col), pos);
                    }
                    catch (Exception)
                    {
                        throw new Exception("地图层不可为空, 缺少位置: " + pos.ToString());
                    }
                }
            }
        }
Exemple #3
0
 /// <summary>
 /// 获取地表元素的副本
 /// </summary>
 /// <param name="pos">副本出现的坐标</param>
 public Background GetBack(Coord pos)
 {
     return(Background.CreateInstance(_Back.XmlRecord, pos));
 }