团队作业2
基本介绍
当前设计框架基本由永福完成,当前阶段我主要负责技能相关的设计修改以及实现。由于这是个团队作业,如何处理好相互之间的分工以及相互理解对方的代码就很关键,此问题在优秀的交流面前还是很好解决的。
代码设计与说明
整体的类图与设计思路会在团队博客给出。这里简单介绍下Skill类以及相关派生类。
注释采用的是基于doxygen的方式。
首先:
Skill类
:这是一个抽象类。- 保护成员:
Unit* host
,int CD
,int lastCast
- 保护成员:
Probe类
:由Skill继承的技能类。Punishment
:同上。Execute
:同上。
host是技能拥有者,CD是技能固有cd,lastCast是上次释放技能的时间。
getHost() const:返回宿主对象。getCd() const:返回剩余技能cd。getLastCast() const:返回上次释放技能时间。cast():技能的效果,以及lastCast的获取。isCastable():判定技能是否冷却完毕。
其中cast以及isCastable都为纯虚函数。
class Unit;
/// <summary>
/// 技能类
/// </summary>
class Skill
{
protected:
Unit * host;
int CD;
public:
virtual Unit* getHost() const;
virtual int getCd() const;
virtual int getLastCast() const;
protected:
int lastCast;
public:
Skill(Unit* ht);
virtual int cast()=0;
virtual bool isCastable()=0;
virtual ~Skill();
};
/**
* rief "试探"技能类
* 技能类型:伤害
* 范围:3格
* 作用对象:小兵
* 伤害:300
*/
class Probe :public Skill
{
public:
Probe(Unit* ht);
virtual int cast();
virtual bool isCastable();
};
/**
* rief "惩戒"技能类
* 技能类型:伤害
* 范围:3格
* 作用对象:小兵
* 伤害:650
*/
class Punishment :public Skill
{
public:
Punishment(Unit* ht);
virtual int cast();
virtual bool isCastable();
};
/**
* rief "斩杀"技能类
* 技能类型:伤害
* 范围:5格
* 作用对象:小兵与英雄
* 伤害:已损失生命值12%
*/
class Execute :public Skill
{
public:
Execute(Unit* ht);
virtual int cast();
virtual bool isCastable();
};
小总结
花费的时间主要集中在思考讨论设计上,具体花费的时间也不知道怎么统计了。估计在成品出来时再统一汇总吧。
关于在完成过程中的问题
- 首先肯定是大量新工具如何使用的问题以及代码规范,注释规范之类种种,通过书籍,网络等工具,反反复复学习,跌跌撞撞的学过来了。
- 对于其他伙伴书写的代码需要一定时间的理解。
- 由于各自完成不同的部分,但是各部分之间的耦合度不算低,各种数据的获取方法以及数据传送处理过程常常会有冲突。
- 还是知识不足啊。
心路历程啊,其实早就习惯靠着百度谷歌从无到有了,所以那种感觉还是比较少了,但是能和伙伴讨论学习还是很有意思的。可能现在心态比较好吧。