您的位置:首页 > 其它

接口interface::比想象的更重要

2013-03-04 11:52 176 查看
  在进行游戏编程的时候,有许多类中的函数名都会撞车,我会在不同枪支下声明一个开火函数,我会在敌人函数中声明一个MeleeAttack函数,但是不同类中的函数实现过程却是不同的。

  例如普通僵尸会挥舞爪子,而更牛逼一点的士兵会使用武器攻击。

class Zombie extends Pawn;

function MeleeAttack()
{
近战攻击
}

class Soilder extends Pawn;

function MeleeAttack()
{
拿武器攻击,不同武器攻击方式不同
}


  既然使用接口来实现这些,接口当然要给这些内容提供一个统一的标准。电源插座,USB。

  接口为接下来的类提供了统一的函数标准,例如所有枪支的开火函数,实现接口PrimaryFire。接口会强制这些实现接口类实现必要的函数,否则编译器就会报错,这对于错误检查真是把双刃剑。

2.接口实例

  接口将需要统一实现的内容,束在一起,就像集线器一样,当然他不能实例化内存

Iterface Enemy;

const Damge=20;      //伤害值
const AnimRate=0.2;   //攻击频率

function MeleeAttack(float AnimRate);
function TakeDamage(int Damage);


   实现接口

class Goblin extends Pawn implements(Enemy);

function MeleeAttack(float Rate)
{
if(Rate>class'Enemy'.const.AnimRate)
{
DoAnim(Rate);
}
}


  如果我在Goblin中没有实现TakeDamage(int Damage)函数,将会出现华丽的报错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: