zoukankan      html  css  js  c++  java
  • 接口interface::比想象的更重要

      在进行游戏编程的时候,有许多类中的函数名都会撞车,我会在不同枪支下声明一个开火函数,我会在敌人函数中声明一个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)函数,将会出现华丽的报错。

  • 相关阅读:
    Latex (1)
    linux/unix command
    函数类型和函数指针类型(摘自 linux c编程一站式学习)
    emacs 剪切板
    Centos 常见问题汇总
    makefile(摘自linux_c编程一站式学习)
    [转]DIV布局之三行三列之高度自适应
    ASP.Net新手项目经验谈
    获取中文首字母的方法
    还是不会伪装
  • 原文地址:https://www.cnblogs.com/NEOCSL/p/2942521.html
Copyright © 2011-2022 走看看