Ios 将Int值指定给sprite节点
在我的游戏中,我多次重复添加相同的节点以在屏幕上移动。此节点有一个文本为“1”或“2”的SKLabelNode子节点。我希望能够根据标签的文本指定1或2的数值。使用下面的代码,我为一个键设置了一个值,但我不知道如何将它与我的节点关联起来,以便能够检查它。有没有人有更简单的方法来做这件事,或者无论如何都要修复我现有的代码Ios 将Int值指定给sprite节点,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,在我的游戏中,我多次重复添加相同的节点以在屏幕上移动。此节点有一个文本为“1”或“2”的SKLabelNode子节点。我希望能够根据标签的文本指定1或2的数值。使用下面的代码,我为一个键设置了一个值,但我不知道如何将它与我的节点关联起来,以便能够检查它。有没有人有更简单的方法来做这件事,或者无论如何都要修复我现有的代码 if theLabel.text == "1" { var userDefaults = NSUserDefaults.standardUserDef
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")
}
如果要检查子labelNode中的文本,请在初始化labelNode时首先为其指定名称:
theLabel.name = "labelNode"
这就足够了。现在,在您的didBeginContact
方法中,您可能已经有了这样的方法来检查联系人:
var firstBody: SKPhysicsBody
var secondBody: SKPhysicsBody
firstBody = contact.BodyA
secondBody = contact.BodyB
您可能已经知道,要访问与每个实体关联的sprite节点,只需指定例如contact.BodyA.node
。因此,剩下的就是找到名为“labelNode”的contact.BodyA.node
的子节点。您可以这样做:
var labelNode: SKLabelNode = contact.bodyA.node.childNodeWithName("labelNode") as SKLabelNode
好的,现在您已经有了标签节点,您可以轻松地检查其文本并执行任何您想要的操作:
println(labelNode.text)
现在你只需要对bodyB做同样的事情。希望这有帮助 如果要检查子labelNode中的文本,应在初始化labelNode时首先为其指定名称:
theLabel.name = "labelNode"
这就足够了。现在,在您的didBeginContact
方法中,您可能已经有了这样的方法来检查联系人:
var firstBody: SKPhysicsBody
var secondBody: SKPhysicsBody
firstBody = contact.BodyA
secondBody = contact.BodyB
您可能已经知道,要访问与每个实体关联的sprite节点,只需指定例如contact.BodyA.node
。因此,剩下的就是找到名为“labelNode”的contact.BodyA.node
的子节点。您可以这样做:
var labelNode: SKLabelNode = contact.bodyA.node.childNodeWithName("labelNode") as SKLabelNode
好的,现在您已经有了标签节点,您可以轻松地检查其文本并执行任何您想要的操作:
println(labelNode.text)
现在你只需要对bodyB做同样的事情。希望这有帮助 何时何地需要访问此值?在某些情况下,这是存储值的最佳方式。例如,如果您想在应用程序中设置一个值,该值将在终止后保留。@M321K我需要在didBeginContact中检查该值,以便在发生冲突时能够区分相同节点的子标签具有不同文本。例如,我可以检查是否存在涉及节点的冲突,还可以检查节点的值是1还是2。好的,是的,有更好的方法,请查看我的回答您需要在何时何地访问此值?在某些情况下,这是存储值的最佳方式。例如,如果您想在应用程序中设置一个值,该值将在终止后保留。@M321K我需要在didBeginContact中检查该值,以便在发生冲突时能够区分相同节点的子标签具有不同文本。例如,我可以检查是否存在涉及节点的冲突,还可以检查节点的值是1还是2