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

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三十一) 超酷万变的矢量魔法

 2010-09-30 20:52:29 来源:WEB开发网   
核心提示: 其中RadiusX与RadiusY分别定义激光魔法的圆角,并通过BitmapEffect中的OuterGlowBitmapEffect为激光魔法添加外发光效果(此特效很不错,C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三十一) 超酷万变的矢量魔法(2),

其中RadiusX与RadiusY分别定义激光魔法的圆角,并通过BitmapEffect中的OuterGlowBitmapEffect为激光魔法添加外发光效果(此特效很不错,可是会占用大量的界面线程资源第二十五节中有提到过相关知识;值得庆幸的是,在Silverlight中此类特效效果及性能均表现优良,有兴趣的朋友不妨在Silverlight中测试体验一下),此时大家是否有注意到,我还为该激光魔法添加了一个RotateTransform,因为它与上一节中的群攻魔法有一定的区别,它是具有方向的,因此我们需要通过旋转变换来实现相关需求。这里我为其旋转对象取了个名字Rotate以方便后台代码能对其进行操作。

界面绘制好后,我们还需要为控件添加一些属性,这些属性与上一节中的魔法控件的属性基本相同;需要特别指出的是Fill与OuterFill这两个属性,它们分别用来设置激光魔法内部的填充及外发光颜色。

接下来还需要在Config.xml文件中为激光魔法设定参数:

      <Magic Type="1" Code="6" FrameNum="20" EffectiveFrame="0">

        ……

      </Magic>

这里我新加了一个参数叫Type,用它来区分不同类型的魔法,因为不同类型的魔法它的范围、方向、伤害处理等均存在非常大的差异,我们必须分类进行处理。

最后,我们通过仿造类似上一节的魔法处理代码,即可将激光魔法运行起来。但是又出现了新的问题:由于激光属于矩形直线穿梭类型魔法,在伤害计算上会有些特殊,该如何进行相关的设定呢?大家不妨先看下图:

C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三十一) 超酷万变的矢量魔法

上一页  1 2 3 4  下一页

Tags:开发 WPF Silverlight

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