我有几个SKSpriteNode
叫circle1
, circle2
等。我想使用 Int count
跟踪每个旋转的次数。 .有什么方法可以分配 count
成为circle1
的成员?类似于 circle1.count = 2
,你会做的方式circle1.position = ...
?我不想为每个圈子都创建一个新变量,因为有很多。
最佳答案
您可以将 SKSpriteNode 子类化,并创建一个具有名为 count 的公共(public)属性的新类。像这样:
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属性作为子类的替代(引用自文档):
Discussion
You use this property to store your own data in a node. For example, you might store game-specific data about each node to use inside your game logic. This can be a useful alternative to creating your own node subclasses to hold game data.
参见 here如何使用 userData。
关于ios - 如何将实例变量分配给SKSpriteNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34212152/