【问题标题】:Swift - create array of class objectsSwift - 创建类对象数组
【发布时间】:2015-09-26 19:44:27
【问题描述】:

我正在尝试创建一个数组来存储我的类对象。 createEnemies 方法在关卡启动时被调用。然后应该创建敌人的对象。但是我不明白该怎么做。它应该在“if(levelNumber

class level {
    class func createEnemies() {
        numEnemies = Int(floor(levelNumber * 1.5 + 10))
        println("Number of Enemies this level: \(numEnemies)")

        if(levelNumber < 5){
            //Create numEnemies amount of class objects

        }
    }
}

//Enemy Variables
var enemiesKilled = 0

class enemy {
    class func enemiesKilled() {

    }

    class standard {

        var health:Int = 10
        var name:String = "Standard"
        var worth:Int = 10
        var power:Int = 10

        init () {

        }

        func kill() {

        }

        func damage(damage: Int) {
            self.health -= damage
            println("\(self.name) was damaged \(damage)")
            if(self.health <= 0){
                self.kill()
            }

        }
    }

【问题讨论】:

    标签: arrays swift class loops object


    【解决方案1】:

    像这样创建一个自定义类的元素数组:

    var enemies = [enemy]()
    

    你可以像这样向它添加元素:

    enemies.append(anEnemy: enemy)
    

    【讨论】:

      【解决方案2】:

      如果你想在数组中有特定数量的敌人,有几种方法可以实现(我写Enemy而不是enemy,因为类名的第一个字母通常是大写的):

      // "old fashioned" for loop
      var enemies = [Enemy]()
      for _ in 1...numEnemies {
          // call initializer of Enemy
          enemies.append(Enemy())
      }
      
      // my personal preference (Range has a method named map which does the same as Array)
      // without the "_" you could also access the numbers if you want
      let enemies = (1...numElements).map{ _ in Enemy() }
      

      如果您以后需要访问该数组,您应该在您的注释//Enemy Variables 下声明该变量。

      【讨论】:

        【解决方案3】:

        对于 Swift 3.1

        var enemies:[enemy] = [enemy]()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-03-27
          • 1970-01-01
          相关资源
          最近更新 更多