在 Swift 中将动态 Int 变量从一个类传递到另一个类

2024-05-15

我是 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(使用前将#替换为@)

在 Swift 中将动态 Int 变量从一个类传递到另一个类 的相关文章

随机推荐