团队作业2

团队作业2


基本介绍

当前设计框架基本由永福完成,当前阶段我主要负责技能相关的设计修改以及实现。由于这是个团队作业,如何处理好相互之间的分工以及相互理解对方的代码就很关键,此问题在优秀的交流面前还是很好解决的。


代码设计与说明

整体的类图与设计思路会在团队博客给出。这里简单介绍下Skill类以及相关派生类。
注释采用的是基于doxygen的方式。
首先:

  • Skill类:这是一个抽象类。
    • 保护成员:Unit* hostint CDint 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();
};
/**
 * \brief "试探"技能类
 * 技能类型:伤害
 * 范围:3格
 * 作用对象:小兵
 * 伤害:300
 */
class Probe :public Skill 
{
public:
	Probe(Unit* ht);
	virtual int cast();
	virtual bool isCastable();
};
/**
 * \brief "惩戒"技能类
 * 技能类型:伤害
 * 范围:3格
 * 作用对象:小兵
 * 伤害:650
 */
class Punishment :public Skill
{
public:
	Punishment(Unit* ht);
	virtual int cast();
	virtual bool isCastable();
};
/**
 * \brief "斩杀"技能类
 * 技能类型:伤害
 * 范围:5格
 * 作用对象:小兵与英雄
 * 伤害:已损失生命值12%
 */
class Execute :public Skill
{
public:
	Execute(Unit* ht);
	virtual int cast();
	virtual bool isCastable();
};

小总结

花费的时间主要集中在思考讨论设计上,具体花费的时间也不知道怎么统计了。估计在成品出来时再统一汇总吧。

关于在完成过程中的问题

  1. 首先肯定是大量新工具如何使用的问题以及代码规范,注释规范之类种种,通过书籍,网络等工具,反反复复学习,跌跌撞撞的学过来了。
  2. 对于其他伙伴书写的代码需要一定时间的理解。
  3. 由于各自完成不同的部分,但是各部分之间的耦合度不算低,各种数据的获取方法以及数据传送处理过程常常会有冲突。
  4. 还是知识不足啊。

心路历程啊,其实早就习惯靠着百度谷歌从无到有了,所以那种感觉还是比较少了,但是能和伙伴讨论学习还是很有意思的。可能现在心态比较好吧。

posted @ 2018-06-19 20:47  水喵桑  阅读(159)  评论(0编辑  收藏  举报