您的位置:首页 > 编程语言 > C#

C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十八) 落雷!治疗!陷阱!连锁闪电!多段群伤!魔法之终极五重奏①

2010-01-15 16:26 483 查看
    是否还记得《传奇》中那一道道从天而降落的闪电,《笑傲江湖网络版》中娥眉救死扶伤的治疗,《剑侠世界》中五毒神出鬼没般的陷阱,《英雄无敌》中超经典的连锁闪电以及《魔兽争霸》中法师之终极魔法-暴风雪。这些家伙都曾在当年的玩家们心中打下深深的烙印,如能将此些经典之作添加进游戏中,毫无疑问将大幅提升游戏的华丽度与趣味性,战斗不就涂个爽快吗?这才是魔法的终极魅力!

首先来看闪电(落雷类型)魔法的制作。
从天而降,单体伤害,给予目标麻痹附加效果。与上一节的单体飞行魔法不同的是,施放就好比第三十二节中的群攻魔法,瞬间从目标点出现,并于起效帧时触发伤害,攻击对象为单体,算比较简单且实用的魔法之一。实际游戏制作中的瞬发型单体魔法并非只有闪电,可以说几乎所有游戏中的基础系魔法均可从此类型衍生出来,比如《三国群英传》中的地矛等:



 




接下来是单体治疗类型魔法,由于本教程示例游戏是单机的,因此我将此治疗魔法设定为可以对任意对象进行加血操作以展示其灵活性。治疗魔法的原理就好比落雷,仅仅不同的是它所产生的效果是加血而不是伤血,实际制作中可以将它们归为一类,处理伤害时通过+-来判断完成即可,同时拓展衍生一下,群体加血不就是将群攻魔法进行反向即减血操作即可,其实魔法设计是有规律可寻的,为要因为那些魔法在表现时的花花绿绿五花八门而无从下手,当你从中发现规律时,一切就简单多了:



 



再下来是陷阱类型魔法,在《暗黑破坏神》和《剑侠世界》等游戏中均有很不错的体现,那么本节中我借用《剑侠世界》的素材来制作陷阱。别看实际使用时是那么的牛X,但制作时需要考虑的因素还是挺多的,例如每个角色能同时拥有几个陷阱在地图中;陷阱如一直未被触发那么它的消失时间是多长;陷阱是相对于敌对精灵不可见,而非敌对玩家则以半透明的形式出现;陷阱有一定的作用范围,当埋设后并不产生伤害,只有当敌对精灵进入该范围内时才触发伤害,并出现陷阱被触发的新动画以及对该精灵进行附加效果如中毒等处理。在本示例教程中,我仅仅以简化的方式实现了类似的陷阱:一个精灵只允许同时拥有一个陷阱,且如果该陷阱不被触发或不去施放新的陷阱则一直存在:



 



更精彩的还在下一节,连锁闪电那可是《英雄无敌》的招牌,不同级别的连锁闪电可以连锁的敌人个数不同,作者用“酷毙了”去形容都仍觉的欠些火候,想看吗?敬请关注。
本节源码请到目录中下载,在线演示地址:http://silverfuture.cn

作者:深蓝色右手
出处:http://blog.csdn.net/alamiye010/
教程目录及源码下载:点击进入
本文版权归作者和CSDN共有,欢迎转载。但未经作者同意必须保留此段声明,且在文章页面显著位置给出原文连接,否则保留追究法律责任的权利。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  游戏 c# 网络
相关文章推荐