在我的游戏中,我多次重复添加相同的节点以在屏幕上移动。此节点有一个 SKLabelNode 子节点,其文本为“1”或“2”。我希望能够根据标签的文本分配 1 或 2 的数值。使用下面的代码,我为一个键设置了一个值,但我不知道如何将它与我的节点相关联以便能够检查它。有没有人有更简单的方法来执行此操作或无论如何都可以修复我现有的代码?
if theLabel.text == "1" {
var userDefaults = NSUserDefaults.standardUserDefaults()
number = userDefaults.integerForKey("number")
userDefaults.setValue(1, forKey: "number")
}
if theLabel.text == "2" {
var userDefaults = NSUserDefaults.standardUserDefaults()
number = userDefaults.integerForKey("number")
userDefaults.setValue(2, forKey: "number")
}
最佳答案
如果在 didBeginContact
中你想检查子 labelNode 中的文本是什么,你应该在初始化时首先为 labelNodes 指定一个名称:
theLabel.name = "labelNode"
这就足够了。现在,在您的 didBeginContact
方法中,您可能已经有了这样的东西来检查联系人:
var firstBody: SKPhysicsBody
var secondBody: SKPhysicsBody
firstBody = contact.BodyA
secondBody = contact.BodyB
您可能已经知道,要访问与您指定的每个 body 关联的 Sprite 节点,例如 contact.BodyA.node
。所以,剩下的就是找到 contact.BodyA.node
的名为 "labelNode"
的子节点。你可以这样做:
var labelNode: SKLabelNode = contact.bodyA.node.childNodeWithName("labelNode") as SKLabelNode
好的,现在您有了标签节点,您可以轻松检查其文本并执行任何您想做的事情:
println(labelNode.text)
现在你只需对 bodyB 做同样的事情。希望这对您有所帮助!
关于ios - 为 sprite 节点分配 Int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31977929/