C#开发WPF/Silverlight动画及游戏系列教程(Game Course):(二十八) 经典式属性设计及完美的物理攻击系统
2010-09-30 20:47:09 来源:WEB开发网以力量属性VPower为例,它影响着最大负重、物理攻击力最小值、物理攻击力最大值这3个基值属性,又以其中的物理攻击力最大值为例:
/// <summary>
/// 获取物理攻击力最大值
/// </summary>
public double VAttackMax {
get { return ABase[2] + Equip[2] + Buff[2] + VPower * Coefficient[2]; }
}
从它的CLR构造可以看出VAttackMax = ABase[2] + Equip[2] + Buff[2] + VPower * Coefficient[2],并且最关键的它是只读的(即通过多个影响其值的相关属性值集合而成,并非通过直接赋值得到,这样做可以轻松构建出通用且易于维护的精灵属性系统)。其中Abase[2]为该精灵物理攻击力最大值的原始基础值,例如战士的ABase[2]可以定为30,那么魔法师的ABase[2]大约为10左右等等;Equip[2]为所有装备的力量加成值总和,这个不用说大家也明白;Buff[2]为所有加持减持等效果的附加值;Coefficient[2]为该精灵的力量系数,例如狂战士的Coefficient[2]可以定为10,而牧师的Coefficient[2]则约为2左右等等。那么其他的诸如敏捷属性VAgile,体格属性VPhysique等等均是类似的关联设计。
属性定义完成后,接下来便可以着手设计精灵的物理攻击系统。
同样的我们首先对物理攻击的需求进行分析,即物理攻击的触发、过程及结束处理:
当我们在其他精灵身上点击鼠标左键后,首先进行敌对判断,如果是敌对的则将物理攻击对象锁定为该精灵(敌人),然后主角向其位置跑去,当该敌人进入主角的攻击距离(范围)内时,主角向其发起物理攻击,然后通过公式计算出伤害值并输出显示出来。这就是最典型的物理攻击发生过程。
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
更多精彩
赞助商链接