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

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十九) 魔法之终极五重奏②

 2010-09-30 22:40:06 来源:WEB开发网   
核心提示:首先是连锁闪电,在《英雄无敌》中体现得尤为出色,C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十九) 魔法之终极五重奏②,击中一个怪物后,闪电会继续向它周围延续,将魔法飞行到List<QXSprite>中的第二个怪物中心,并触发连锁闪电的第二次攻击,连锁到下一个

首先是连锁闪电,在《英雄无敌》中体现得尤为出色,击中一个怪物后,闪电会继续向它周围延续,连锁到下一个怪物并对其进行第二次攻击,接着重复前面步骤往周围延续,直到次数达到连锁次数上限或周围已没有其他怪物为止。当然,每一次攻击产生的伤害及附加属性都会少于前一次,例如在本教程示例游戏中,我将连锁闪电设定为每一级连锁攻击力都较头一次减半,且附加麻痹属性的时间也减半,这些数据均记录在Config.xml魔法配置文件中,非常有意思,大家可以通过AffectedNum来自由设定不同等级能连锁的次数上限,例如3级连锁闪电可最多3次连锁等等:

<Level Value="3" ATK="380" Consumption="20" AdditionalEffect="90" AdditionalEffectTime="8" AffectedNum="3"/>

那么在Silverlight中我们是如何进行这些连锁处理的呢?其实我们可以把整个释法过程分成3个步骤,第一步,捕捉要攻击对象及其周围在连锁闪电攻击半径Radius内小于或等于AffectedNum的敌对精灵对象,放入一个List<QXSprite>中(其中第一个即为被鼠标点中的攻击对象);第二步,类似第四十七节中的单体飞行魔法原理,通过Storyboard创建飞行动画,并在动画Completed事件时触发对第一个怪物的第一次伤害;第三步,以该怪物中心为起点,再次创建Storyboard飞行动画,将魔法飞行到List<QXSprite>中的第二个怪物中心,并触发连锁闪电的第二次攻击,后面的依次类推,直到连锁完成(List<QXSprite>中所有对象均伤害一次):

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十九) 魔法之终极五重奏②

1 2  下一页

Tags:开发 WPF Silverlight

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