01 LOL 英雄联盟游戏需求分析
下面我们用设计 LOL 英雄联盟游戏的英雄的例子,说明多态为什么可以在修改或增加功能的时候,可以较少的改动代码。
LOL 英雄联盟是 5v5 竞技游戏,游戏中有很多英雄,每种英雄都有一个「类」与之对应,每个英雄就是一个「对象」。
英雄之间能够互相攻击,攻击敌人和被攻击时都有相应的动作,动作是通过对象的成员函数实现的。
下面挑了五个英雄:
● 探险家 CEzreal
● 盖楼 CGaren
● 盲僧 CLeesin
● 无极剑圣 CYi
● 瑞兹 CRyze
基本思路:
1、为每个英雄类编写 Attack、FightBack 和 Hurted 成员函数:
● Attack 函数表示攻击动作;
● FightBack 函数表示反击动作;
● Hurted 函数表示减少自身生命值,并表现受伤动作。
● 设置基类CHero,每个英雄类都继承此基类
— —