尝试将每个 SKSpriteNode 与新的 属性 一起使用
Trying to use every SKSpriteNode with a new property
我正在用 SpriteKit 做游戏,但我不知道如何 link 一个新的 属性(我们称之为 "value")到每个 SKSpriteNode。我已经尝试了一些事情:
-> 使用这样的结构:
struct mySprite {
var sprite: SKSpriteNode
var value: CGFloat
}
但是我无法分配,例如 sprite1.sprite = SKSpriteNode(imageNamed: "picture")
-> 尝试扩展 SKSpriteNode,XCode 不允许我添加新的 属性。
-> 构建一个继承自 SKSpriteNode 的新 class 添加一个新的 属性 调用值,如下所示:
class mySprite : SKSpriteNode {
var value: CGFloat = 0
}
但是,我无法执行以下代码行:
let sprite : mySprite = SKSpriteNode(imageNamed: "picture")
我认为我构建 class 的方式有误。
有什么想法吗?还算上我是 iOS 编程的小新手,所以我们将不胜感激。谢谢:)
您可以像这样创建自定义 class
class CustomSpriteNode : SKSpriteNode {
var value: CGFloat = 0
}
用于创建自定义实例 class
let spriteNode : CustomSpriteNode = CustomSpriteNode(imageNamed: "picture.png")
spriteNode.value = 10
有时最简单的选择是直接将数据存储在 SKNode 的 userData属性 中。
mySprite.userdata = ["myValue" :"asdf" ]
此处有更多示例:Swift spritekit set userdata
或者,正如其他人所建议的那样,您可以将节点子类化并添加您自己的属性。
我正在用 SpriteKit 做游戏,但我不知道如何 link 一个新的 属性(我们称之为 "value")到每个 SKSpriteNode。我已经尝试了一些事情:
-> 使用这样的结构:
struct mySprite {
var sprite: SKSpriteNode
var value: CGFloat
}
但是我无法分配,例如 sprite1.sprite = SKSpriteNode(imageNamed: "picture")
-> 尝试扩展 SKSpriteNode,XCode 不允许我添加新的 属性。
-> 构建一个继承自 SKSpriteNode 的新 class 添加一个新的 属性 调用值,如下所示:
class mySprite : SKSpriteNode {
var value: CGFloat = 0
}
但是,我无法执行以下代码行:
let sprite : mySprite = SKSpriteNode(imageNamed: "picture")
我认为我构建 class 的方式有误。
有什么想法吗?还算上我是 iOS 编程的小新手,所以我们将不胜感激。谢谢:)
您可以像这样创建自定义 class
class CustomSpriteNode : SKSpriteNode {
var value: CGFloat = 0
}
用于创建自定义实例 class
let spriteNode : CustomSpriteNode = CustomSpriteNode(imageNamed: "picture.png")
spriteNode.value = 10
有时最简单的选择是直接将数据存储在 SKNode 的 userData属性 中。
mySprite.userdata = ["myValue" :"asdf" ]
此处有更多示例:Swift spritekit set userdata
或者,正如其他人所建议的那样,您可以将节点子类化并添加您自己的属性。