添加自定义属性到自定义类和初始化类
问题描述:
我想初始化从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
。