我有几个SKSpriteNode
被称为circle1
,circle2
等。我想跟踪每个人使用Int count
轮换的次数。我有什么方法可以指定count
成为circle1
的成员吗?像circle1.count = 2
那样的事情circle1.position = ...
会怎样?我不想为每个圈创建一个新变量,因为有很多。
答案 0 :(得分:1)
您可以继承SKSpriteNode并使用名为count的公共属性创建一个新类。像这样:
class Circle: SKSpriteNode {
var count:Int = 0
init() {
let texture = SKTexture(imageNamed: "circle")
//Designated initializer
super.init(texture: texture, color: SKColor.clearColor(), size: texture.size())
//initialization stuff goes here
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
并像这样使用它:
let circle = Circle()
circle.count++
或者你可以使用userData属性作为子类的替代(引用来自文档):
讨论
您可以使用此属性将自己的数据存储在节点中。例如,您可以存储有关要使用的每个节点的游戏特定数据 在你的游戏逻辑中。这可以是创建的有用替代方案 你自己的节点子类来保存游戏数据。
请参阅here如何使用userData。