尝试将每个SKSpriteNode与一个新属性一起使用



我正在SpriteKit中做一个游戏,我不知道如何将一个新属性(称之为"值")链接到每个SKSpriteNode。我试过一些东西:

->使用这样的结构:

struct mySprite {
    var sprite: SKSpriteNode
    var value: CGFloat
}

但是我不能分配例如sprite1.sprite = SKSpriteNode(imageNamed: "picture")

->试图扩展SKSpriteNode,XCode不允许我添加新属性。

->构建一个继承自SKSpriteNode的新类,添加一个名为value的新属性,如下所示:

 class mySprite : SKSpriteNode {
    var value: CGFloat = 0
}

但是,我不能执行以下代码行:

let sprite : mySprite = SKSpriteNode(imageNamed: "picture")

我觉得我把这个班搞砸了。

有什么想法吗?另外,我是iOS编程的新手,所以任何帮助都将不胜感激。感谢:)

您可以创建一个类似的自定义类

class CustomSpriteNode : SKSpriteNode {
    var value: CGFloat = 0
}

用于创建自定义类的实例

let spriteNode : CustomSpriteNode = CustomSpriteNode(imageNamed: "picture.png")    
spriteNode.value = 10

有时最简单的选项是将数据直接存储在SKNode的userData属性中。

mySprite.userdata = ["myValue" :"asdf" ]

更多示例:Swift spritkit设置用户数据

或者,正如其他人建议的那样,您可以将Node子类化并添加自己的属性。

最新更新