我是 swift 2 的新手,我陷入了将变量从一个类传递到另一个类的过程中。
我有一个类“GameScene”,我有一个公共变量score并且在更新功能中不断更新。我想发送score两个节点相互碰撞时的值。一旦它发生碰撞,我就会使用“mainview .presentScene(游戏结束场景)" 语法。我想要游戏场景中的更新分数。
我尝试使用“私有让_gameScene = GameScene()“ 在游戏结束场景中并使用 “ 将其传递给标签最终得分.text = String( gameScene.最终得分)“我得到的变量是我在开始时声明的 O,但不是更新后的分数。请帮助我找到解决方案。
If your GameScene
has a score
属性声明如下
class GameScene: SKScene {
var score = 0
}
然后从游戏的任何节点(已添加到主场景)您可以使用以下命令检索场景scene
财产。所以你可以做类似的事情。
class MyNode: SKNode {
func foo() {
guard let gameScene = self.scene as? GameScene else {
fatalError("This node does not belong to a GameScene")
}
gameScene.score = 123
}
}
Update
通过你的评论我知道你想分享score
多个场景之间的价值。有几种方法可以实现这一目标。最简单的之一是以下内容。
Saving
NSUserDefaults.standardUserDefaults().setInteger(123, forKey: "score")
Reading
let score = NSUserDefaults.standardUserDefaults().integerForKey("score")
请注意,通过这种方式,该值存储在持久存储中,并且
当您重新启动应用程序时,该值仍然可用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)