添加自定义属性到自定义类和初始化类

问题描述:

我想初始化从SKSpriteNode继承的自定义类。目前的类定义看起来像这样添加自定义属性到自定义类和初始化类

import SpriteKit 

class PassengerNode: SKSpriteNode { 
let passengerStart: Int = 2 
let passengerDestination: Int = 0 

init() { 
    let texture = SKTexture(imageNamed: "passenger1")   
    super.init(texture: texture, color: UIColor.clearColor(), size: texture.size()) 
    self.zPosition = 100 
} 

required init(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

func updateTexture(newTexture: SKTexture) { 
    self.texture = newTexture 
} 

}

我想有passengerStart和passsengerDestination分配给对象,分别对类的实例。理想情况下,这两个值都可以随每个实例化而不同。

当我实例化类对象我觉得像

let newObject = PassengerNode(start: 1, destination: 0, texture: "passenger1") 

但是,我得到它的工作...如何,我需要改变我的初始化? 有人有帮助的想法吗?

在此先感谢。

你必须写你的子类的init方法这需要那些 三个参数:

class PassengerNode: SKSpriteNode { 
    let passengerStart: Int 
    let passengerDestination: Int 

    init(start: Int, destination: Int, texture: String) { 
     let texture = SKTexture(imageNamed: texture) 
     passengerStart = start 
     passengerDestination = destination 
     super.init(texture: texture, color: UIColor.clearColor(), size: texture.size()) 
     self.zPosition = 100 
    } 

    required init(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 

    // ... more methods ... 
} 

init方法必须初始化子类的属性和 然后调用super.init