数组中的变量/类

时间:2016-02-08 00:26:53

标签: arrays swift

所以我有点被困在某事上。 我有点想要随机掉落我杀死我的怪物。 这就是我得到的。

我有武器1

class weapon {
   var str = Int
}
class Weapon1: weapon {
    override init() {
        super.init()
 str = 10
}
class Weapon2: weapon {
    override init() {
        super.init()
 str = 20
}

我有一个怪物

class monster {
   str = 20
   def = 10
   drops = [weapon1(), Weapon2()]
}

如果我的怪物死了,我有一个地方可以连接我的水滴

var itemdrops = weapon()

当我的怪物死亡时,它应该将我的怪物掉落到我的项目中。 所以我可以在库存中使用它。 但是当我尝试这样做时

random = (arc4random_uniform(UInt32(monster.items.count-1))) 

//-1 becous it would say 2 items and an array starts at 0
itemdrops = monster.items[random]

但是物品是白色的..

1 个答案:

答案 0 :(得分:1)

问题是itemsmonster实例属性:

class monster {
   str = 20
   def = 10
   drops = [weapon1(), Weapon2()]
}

但是当您尝试访问它时,您尝试通过访问它:

monster.items[random]

monster没有类/静态属性items,因此您的代码无法编译。

这是使用大写字母表示姓名的一个很好的理由,就像你应该的那样。它可以帮助您跟踪这个东西是一个类还是一个实例。例如:

class Monster {
   str = 20
   def = 10
   drops = [Weapon1(), Weapon2()] // assume you've named these classes correctly
}

现在,在您的代码中,您会说:

let aMonster = Monster() // an _instance_
var itemdrops = aMonster.items[random]