打开网易新闻 查看更多视频
使用多态的游戏程序实例

使用多态的游戏程序实例:

游戏《魔法门之英雄无敌》 3 游戏中有很多种怪物,每种怪物都有一个类与之对应, 每个怪物就是一个对象。

打开网易新闻 查看精彩图片

游戏《魔法门之英雄无敌》:

怪物能够互相攻击,攻击敌人和 被攻击时都有相应的动作,动作 是通过对象的成员函数实现的。

打开网易新闻 查看精彩图片

游戏《魔法门之英雄无敌》 新增类:

CThunderBird 游戏版本升级时,要增加新的怪物--雷鸟。 如何编程才能使升级时的代码改动和增加量较小?

打开网易新闻 查看精彩图片

基本思路:

为每个怪物类编写 Attack、FightBack和 Hurted成员函数。

Attact函数表现攻击动作,攻击某个怪物,并调用被攻击怪物的 Hurted函数,以减少被攻击怪物的生命值,同时也调用被攻击怪物 的 FightBack成员函数,遭受被攻击怪物反击。

Hurted函数减少自身生命值,并表现受伤动作。

FightBack成员函数表现反击动作,并调用被反击对象的Hurted成 员函数,使被反击对象受伤。

设置基类 CCreature,并且使CDragon, CWolf等其他 类都从CCreature派生而来。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片