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

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

 2010-09-30 20:49:35 来源:WEB开发网   
核心提示: 这里我们通过GetTreeNode()方法得到Sign==”0”的Map节点,然后以该节点为参数初始化地图表层: private void InitMapSurface(XElement args) { MapSurface = new QXMap(); MapSurf

这里我们通过GetTreeNode()方法得到Sign==”0”的Map节点,然后以该节点为参数初始化地图表层:

        private void InitMapSurface(XElement args) {
            MapSurface = new QXMap();
            MapSurface.Source = BitmapFrame.Create(new Uri(string.Format(@"{0}", args.Attribute("Src").Value), UriKind.Relative));
            MapSurface.Width_ = Convert.ToDouble(args.Attribute("Width").Value);
            MapSurface.Height_ = Convert.ToDouble(args.Attribute("Height").Value);
            MapSurface.X = Convert.ToDouble(args.Attribute("X").Value);
            MapSurface.Y = Convert.ToDouble(args.Attribute("Y").Value);
            Carrier.Children.Add(MapSurface);
        }

最后按照args.Attribute(“属性名”).Value这样的方式,我们将从此节点中获取的属性值对应赋予到MapSurface相应的属性中,从而完成了从设置配置文件到成功加载的整个流程。其他的如地图遮罩、障碍物数组等配置的加载如出一辙,源码中有这里就不累述了。

这样,我们在游戏中换地图时只需重新加载相应代号地图节点,然后读取其中的地表层与遮罩层相关信息即可实现场景轻松切换。并且,如果游戏客户端需要添加几张新地图,或是要对现有地图配置进行修改,那么我们只需更新xml文件,然后让对方(客户端)下载替换即可以进行版本的升级,这就是典型的面向对象的分层开发模式。

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

Tags:开发 WPF Silverlight

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