官术网_书友最值得收藏!

Time for action – Examining inheritance

  1. We can see an example of this by taking a look at the class tree in UnCodeX, under Actor | Inventory | Weapon | UDKWeapon. Expanding UTWeapon we can see the different types of weapons provided as examples in the UDK:
    Time for action – Examining inheritance

    We can see that UTBeamWeapon (like the plasma gun we start with when running the game), UTWeap_RocketLauncher , and UTWeap_ShockRifleBase are amongst our weaponry. Each of these behaves differently, but all of them have common functionality.

  2. Clicking on UTWeapon, we can see some of its variables.
    /** Initial ammo count if in weapon locker */
    var int LockerAmmoCount;
    
    /** Max ammo count */
    var int MaxAmmoCount;
    
    /** Holds the amount of ammo used for a given shot */
    var array<int> ShotCost;

What just happened?

Things like MaxAmmoCount and ShotCost are common to all of the weapons, so instead of having to duplicate the variables to all of the subclasses, they're declared in all of the weapons' parent class, UTWeapon. Indeed, if we look at UTWeapon's subclasses like UTWeap_RocketLauncher, we won't find MaxAmmoCount or any of UTWeapon's other variables declared in any of them.

Speaking of weapons, I think it's time we started having a little fun with our code. AwesomeActor has been good to us so far, but he doesn't really do a lot besides sit there and send out log messages. Let's make a weapon.

主站蜘蛛池模板: 二手房| 青川县| 图片| 蒲城县| 广汉市| 襄垣县| 桂阳县| 临清市| 海城市| 大埔县| 朝阳市| 华蓥市| 凌源市| 诸城市| 清徐县| 尼木县| 固镇县| 甘孜县| 黄梅县| 桐乡市| 南部县| 聂拉木县| 峨边| 泰兴市| 卫辉市| 米易县| 昌宁县| 铁岭县| 姜堰市| 霞浦县| 乐清市| 呼和浩特市| 松溪县| 贵州省| 策勒县| 稷山县| 邯郸市| 平陆县| 平顺县| 岑溪市| 铜山县|