C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(三十二) 雷、混、冰、毒、火、风 - 幻化中的魔法魅力
2010-09-30 20:58:24 来源:WEB开发网完成了界面,剩下的就是实现逻辑。魔法附加属性不可能是永久的,就好比中毒有个中毒持续时间,麻痹有麻痹持续时间等等,除了那些即效魔法外,本文介绍的这6类魔法附加属性均为持续性的。因此,我通过为精灵控件添加一个ExtraTime属性来记录精灵被施与魔法附加属性的持续时间:
double[] _ExtraTime = new double[6];
/// <summary>
/// 获取或设置被附加属性对应持续时间,与枚举ExtraAttributes一一对应
/// </summary>
public double[] ExtraTime {
get { return _ExtraTime; }
set { _ExtraTime = value; }
}
该时间数组为double类型,分别与枚举ExtraAttributes一一对应。通过如此设置,我们可以轻松的借助主界面间隔为1秒的辅助线程 AuxiliaryThread去同步更新它们(每秒-1),并实现例如中毒每秒伤血等相关业务逻辑,可谓水到渠成,无缝衔接。
由于此6种附加属性实现的相应功能相差较大,基本无统一的规律可寻,因此下面我将按类型分类进行讲解:
1)雷:
本示例教程中我将之定义为使精灵无法动弹,无法动弹一方面意味着它自身动作被锁定,另一方面表示它无法移动。代码实现即:
if (enemy.VLife > injure) {
enemy.BodyMaskColor = new SolidColorBrush(Colors.Snow);
enemy.BodyMaskSource.ImageSource = enemy.Body.Source;
enemy.TimerState = TimerStates.Stop;
Super.PauseSpiritStoryboard(enemy);
} else {
enemy.TimerState = TimerStates.Start;
}
Tags:开发 WPF Silverlight
编辑录入:爽爽 [复制链接] [打 印]- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››silverlight全屏显示图片
- ››Silverlight MVVM 模式(一) 切近实战
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››WPF学习笔记12. Binding (5)
- ››WPF学习笔记11. Binding (4)
- ››WPF学习笔记10. Binding (3)
- ››WPF学习笔记9. Binding (2)
- ››WPF学习笔记8. Binding
更多精彩
赞助商链接