ios - 如何将实例变量分配给SKSpriteNode?

标签 ios swift sprite-kit

我有几个SKSpriteNodecircle1 , 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/

相关文章:

ios - 每当 admob 收到广告时,cocos2dx 动画就会滞后

ios - URL 对 API 请求的文本字段文本进行编码

ios - 模拟“冰上改变方向”效果

swift - 如何将偏移复选框列表添加到 NSScrollView?

ios - 如何使用 CGPathRef 创建蛋形物理体?

ios - SKSpriteNode的 Sprite 只有在iPhone 7 Plus真机上模糊

iphone - 我应该在 xcode 中从哪个模板开始?

iPhone 登录屏幕数字键盘

ios - iOS 中的断断续续的动画

ios - 使用 Swift 3,如何解析 JSON 文件以便可以全局访问数据?