我正在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子类化并添加自己的属性。