【问题标题】:How do I assign values to a class using its parameters? - Basic如何使用参数为类赋值? - 基本的
【发布时间】:2023-03-24 05:16:01
【问题描述】:

所以我正在使用 Flash 朋克来开发游戏,并且我创建了一个基类,其中包含基于玩家选择的角色类型的角色统计信息。这就是该类目前的样子。

public class Stats extends Entity
{
        public var ATK:Number;
        public var ARM:Number;
        public var SPD:Number;
        public var WIS:Number;
        public var CRG:Number;
        public var STM:Number;

    public function Stats(ATK:Number=0, ARM:Number=0, SPD:Number=0, WIS:Number=0, CRG:Number=0, STM:Number=0)
    {

    }
    override public function update():void 
    {
        super.update();

    }
}

在另一个类中单击按钮时,我希望它使用参数 (2, 6, 2, 2, 4, 4) 创建一个新的统计类 所以我愿意

public var SkelStats:Stats = new Stats(2, 6, 2, 2, 4, 4);

然后将该对象 (SkelStats) 分配给玩家老板类型变量。我这样做

public static var BossType:Stats;

然后在我添加的click函数下的按钮类中

Player.BossType = SkelStats; trace(Player.BossType.ATK)

除非我更改统计类本身中的变量(ATK),否则跟踪总是输出 0。为什么我在类的实例的参数中输入它时它不会改变?(SkelStats)

对不起,如果这太令人困惑了,如果有任何不清楚的地方,我可以回答有关我的代码的任何问题。我只是不确定我在这里做错了什么。

【问题讨论】:

    标签: class actionscript-3 object parameters actionscript


    【解决方案1】:

    我明白了!我所要做的就是将构造函数中的变量也存储在类中。显然构造函数定义的变量是临时的。所以我改变了

        public var ATK:Number;
        public var ARM:Number;
        public var SPD:Number;
        public var WIS:Number;
        public var CRG:Number;
        public var STM:Number;
    

    到这里

        public var attack:Number;
        public var armour:Number;
        public var speed:Number;
        public var wisdom:Number;
        public var courage:Number;
        public var stamina:Number;
    

    并添加这个

        attack  = ATK;
        armour  = ARM;
        speed   = SPD;
        wisdom  = WIS;
        stamina = STM;
        courage = CRG;
    

    到这里

    public function Stats(ATK:Number=0, ARM:Number=0, SPD:Number=0, WIS:Number=0, CRG:Number=0, STM:Number=0)
    {
    
    }
    

    最终类看起来像这样,并且完全按照我想要的方式工作:

    public class Stats extends Entity
    {
            public var attack:Number;
            public var armour:Number;
            public var speed:Number;
            public var wisdom:Number;
            public var courage:Number;
            public var stamina:Number;
    
        public function Stats(ATK:Number=0, ARM:Number=0, SPD:Number=0, WIS:Number=0, CRG:Number=0, STM:Number=0)
        {
            attack  = ATK;
            armour  = ARM;
            speed   = SPD;
            wisdom  = WIS;
            stamina = STM;
    
        }
    }
    

    在这里找到所有这些答案:AS3 passing constructor parameters as variables in class

    【讨论】:

      猜你喜欢
      • 2017-07-04
      • 1970-01-01
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多