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

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

 2010-09-30 20:48:41 来源:WEB开发网   
核心提示: 代码太多我就不一一罗列了,下面我提取部分重要的参数进行讲解,C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十四) Be careful!前方怪物出没(2),首先我定义一个Random类型随机函数用于随机数值的产生,接着判断每一个有名字的精灵是否存在,等级

代码太多我就不一一罗列了,下面我提取部分重要的参数进行讲解。首先我定义一个Random类型随机函数用于随机数值的产生,接着判断每一个有名字的精灵是否存在,如果不存在则加入到游戏中。这里为精灵注册名字的目的是为了以后方便管理,例如精灵死掉了,我们需要找到它的实例并将之移除,而惟有通过它的名字或ID之类的方能将之捕获;同时,在定时刷怪的机制下,我们得首先判断某精灵是否还存在,如果存在则不可能再多刷一个,就好比网络游戏中大家是否都有过蹲点等刷BOSS暴装备的经历,一个萝卜一个坑,同一点上刷出两个双胞胎BOSS,这是很匪夷所思的事。那么定义完怪物的名字后,我们接着还需要定义它的身体图片代号,本例中它的代号为100(为了与主角类精灵用的身体图片区别,我以0-99代表主角类身体(衣服)代号范围,100-N代表怪物(NPC)类身体代号范围),最后通过前面的random来定义它们的初始坐标:以(2000,1500)为中心边长为1000的正方形范围内的随机位置。

就这么完啦?对,简单吧,还是那句老话,拓展性优良的架构是经得起全方位的考验滴。嘿嘿,刷它30个怪(InitMonster(30))测试一下:

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

怪物满天飞,主角此时激动的心情是难以用人类的语言来形容的。可是,当主角向四周望去时,蒙了:杂都和我名同姓捏?作者你脑神经搭到脚底了吧?。。。我还真没注意到哪。在前面的章节里,我将精灵的3个身份描述都定义在了xaml里面(Faction门派,Clan家族,Sname名字)。此时,我们对精灵的重命名必须在精灵初始化的同时进行。但由此带来的新问题:如果每个怪物都有不同的身份描述,而且需要经常性的修改调整,写在内存里的东西是无法扩展的。这不禁让我联想到了第二十二节中的xml配置文件解决方案。网络游戏的服务器会根据地图区域代号加载相应的地图xml配置文件,其中包括地图及遮挡物以及地图上相当重要的精灵对象信息。当需要时我们只需对xml文件进行稍稍修改,例如精灵怪物的位置,描述,等级等相关信息即可以达到更新的目的。根据此原理,我对原有的Config配置文件进行如下改进,并添加怪物参数设置:

上一页  1 2 3 4  下一页

Tags:开发 WPF Silverlight

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