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

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十八) 经典式属性设计及完美的物理攻击系统

 2010-09-30 20:47:09 来源:WEB开发网   
核心提示: 本节示例代码中我为主角赋予了一定的根属性值从而得出65%的命中与18%的暴击率,当向敌人发起攻击时系统会首先进行命中判断,C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十八) 经典式属性设计及完美的物理攻击系统(7),没有命中则无任何伤害;如果命中,则在

本节示例代码中我为主角赋予了一定的根属性值从而得出65%的命中与18%的暴击率。当向敌人发起攻击时系统会首先进行命中判断,没有命中则无任何伤害;如果命中,则在此基础上再进行暴击(伤害加倍)判断,否则则为普通攻击。接着根据不同的伤害类型通过ShowText()方法(该方法显示出来的是QXText控件的实例,即第十四节中的BorderText,这里我重构并Open了)将伤害显示到游戏画面中,最后如果有命中还需要让敌人减去相应的生命值。DoInjure()方法算是最基本的伤害处理方法,在后面的章节中还会有更多更复杂的处理,我们可以通过DoInjure()多态来实现,最终完善游戏的伤害系统。

通常的网络游戏中,伤害值会显示在对应的精灵头顶,并不断的渐隐上升,最后消失并被系统移除。本节示例游戏中我们可以轻松的在AllMove()中实现此功能:

……

if (obj is QXText) {

          QXText text = obj as QXText;

          if (text.Opacity <= 0) {

                Remove(text);

          } else {

                text.Opacity -= 0.005;

                text.Y -= 0.5;

      }

……

每次游戏画面刷新时,伤害字体透明度-0.005且匀速上升0.5,当透明度由1->0后,游戏便将之移除从而及时的释放掉资源:

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十八) 经典式属性设计及完美的物理攻击系统

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十八) 经典式属性设计及完美的物理攻击系统

在攻击的过程中,大家不妨观察被攻击的怪物头上的血条及监视头像面板中的血条是否都时时更新且保持一致,通过前面几节的努力,这方面的扩展均是无缝的。

额外的,伤害显示方式并非只此一种,您完全可以充分的激活自己的大脑细胞做出更多的创新。例如利用第二十六节的彩虹笔刷来美化文字;模仿JS的数字验证码来创造出夸张或抽象美的字体;更甚者,您完全可以将文字作成动画封装成控件来使用,当暴击时给予玩家极好的视觉享受等等:

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十八) 经典式属性设计及完美的物理攻击系统

整个过程完美衔接,构建出经典又不失完美的物理攻击系统。下一节我将对为所有精灵加入简单AI,使精灵们更加栩栩如生,美妙的虚拟世界在向你招手,敬请关注。

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

上一页  2 3 4 5 6 7 

Tags:开发 WPF Silverlight

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