WEB开发网
开发学院软件开发C语言 C#开发WPF/Silverlight动画及游戏系列教程(Game C... 阅读

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十二)重构 – 让代码插上翅膀自由飞翔

 2010-09-30 20:49:35 来源:WEB开发网   
核心提示: 设置完配置文件后,接下来的任务就是在代码中调用之,C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十二)重构 – 让代码插上翅膀自由飞翔(6),目前加载xml文件的方法很多,我选择XLINQ(LINQ TO XML),先看本节的精华方法GetTreeNo

设置完配置文件后,接下来的任务就是在代码中调用之。目前加载xml文件的方法很多,我选择XLINQ(LINQ TO XML),为什么?因为我喜欢LINQ,它是我见过最具艺术感的语法尤物。

话不多说,先看本节的精华方法GetTreeNode():

        /// <summary>
        /// 获取XML文件树节点
        /// </summary>
        /// <param name="xml">XML文件载体</param>
        /// <param name="mainnode">要查找的主节点</param>
        /// <param name="attribute">主节点条件属性名</param>
        /// <param name="value">主节点条件属性值</param>
        /// <returns>以该主节点为根的XElement</returns>
        public static XElement GetTreeNode(XElement XML, string newroot, string attribute, string value) {
            return XML.DescendantsAndSelf(newroot).Single(X => X.Attribute(attribute).Value == value);
        }

该方法仅仅一行代码,却可以高速查找出xml树中任意节点,强悍得只能用“了得”两个字来形容。接着就是使用它来加载地图表层Surface配置:

        /// <summary>
        /// 初始化游戏物件对象
        /// </summary>
        private void InitializeGameObject() {
            //获取代号为0的地图数据
            XElement mapdata = Super.GetTreeNode(Super.SystemConfig, "Map", "Sign", "0");    
//抽离地图数据中的地表层参数并用其来初始化地图地表层
            InitMapSurface(mapdata.Element("Surface"));
            ……
        }

上一页  1 2 3 4 5 6 7 8  下一页

Tags:开发 WPF Silverlight

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接