gpt4 book ai didi

swift - 将自定义属性添加到自定义类并初始化类

转载 作者:行者123 更新时间:2023-11-30 13:42:37 28 4
gpt4 key购买 nike

我正在尝试初始化一个继承自 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 和passengerDestination 分别分配给该对象和该类的实例。理想情况下,这两个值在每次实例化时都可以不同。

当我实例化类对象时,我想到了类似的东西

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

关于swift - 将自定义属性添加到自定义类并初始化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35384769/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com