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

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十四) Be careful!前方怪物出没

 2010-09-30 20:48:41 来源:WEB开发网   
核心提示: 以上为xml文件的部分代码,大家将代码中黄色背景的数据与InitMonster方法中的赋值属性进行对照会发现它们之间基本上是一一对应的,C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十四) Be careful!前方怪物出没(4),设置完后,我们只需通过

以上为xml文件的部分代码,大家将代码中黄色背景的数据与InitMonster方法中的赋值属性进行对照会发现它们之间基本上是一一对应的。设置完后,我们只需通过第二十二节中加载xml数据的方法:

            XElement mapdata = Super.GetTreeNode(Super.SystemConfig, "Map", "Sign", "1");

            ……

            //抽离精灵数据中的怪物集合并用其来初始化地图上的怪物

            InitMonster(mapdata.Element("Spirits").Elements("Monster"));

即可遍历xml配置文件中地图(Map)代号为1(Sign==1)的精灵类型(Spirits)中的具体类型为怪物(Monster)的数据,然后将它们的值与精灵的参数属性进行一一对应赋值即可以动态的完成精灵怪物的初始化。

仔细看的朋友一定注意到了xml文件中地图1中的怪物除了美丽的妖精外,还多了一个名字叫“绝对无敌”的家伙。嘿嘿,它可是我为了本教程特意花了1个小时处理出来的,以次感谢大家这段时间来对我的支持!同时也是对自己劳动的犒赏!挺值得的。那么我们都各刷它若干只测试一下:

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十四) Be careful!前方怪物出没

忽忽,怪物出现了。又到了本教程的国际惯例---“自恋一刻”!让主角在地图上逛逛吧~当到了怪多的地方突然会发现有些许的不连贯,问题出在线程上。本教程例子均使用封装好的线程DispatcherTimer,因此管理起来是相当方便的(比起直接使用Thread简单多了),仅仅需要设置它们的优先级别即可进行相应调整。经过再三考虑与调试,最终的线程结构如下:暂时将主角的生命线程表现级别设置为9级(Normal级),将怪物的生命线程表现级别设置为7级(Render级),并且分别对5个不同的动作(站立、跑步、战斗、施法、死亡)设置相应的后台处理级别分别对应为Lowest、Normal、BelowNormal、BelowNormal、Lowest。对这些线程的调试过程是件非常有趣的尝试,我曾反复尝试并乐在其中(太过瘾导致我无法自拔因而延误了教程的发布…读者声音:“癫子”。^_^||)。不同的线程级别搭配将在游戏性能、画面及操作手感上产生相当明显的区别,大家不妨在我的代码基础上,将主角的生命线程表现级别由Normal调节为Background,或将跑步的级别由Normal调节到最低级别Lowest,然后分别运行一下,区别一目了然。

最后发张最终的测试截图,嘿嘿,我的怪兽军团:

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十四) Be careful!前方怪物出没

轻轻松松就创建出了如此美妙的怪物精灵,这全都得归功于第十四节创建的精灵控件。上天入地如探囊取物,简单设置即可随意实现主角、怪物、NPC等等角色的创建,这就是控件封装给我们带来的完美体验。

下一章我将讲解怪物的层次关系以及如何准确的判断及拾取鼠标下的精灵对象,敬请关注。

出处:http://alamiye010.cnblogs.com/

上一页  1 2 3 4 

Tags:开发 WPF Silverlight

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