Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
swift中的Spritekit游戏:如何在游戏重新加载时保持分数变量不变,而不是回到初始值?_Swift - Fatal编程技术网

swift中的Spritekit游戏:如何在游戏重新加载时保持分数变量不变,而不是回到初始值?

swift中的Spritekit游戏:如何在游戏重新加载时保持分数变量不变,而不是回到初始值?,swift,Swift,我正在构建一个简单的游戏,为了跟踪分数,我只需使用一个score变量,该变量最初为var score=1,然后当玩家得分时,该变量将增加1。问题是,当游戏切换屏幕一秒钟(玩家获胜时,我有一个简短的转换场景),然后返回到主GameSecene.swift文件时,var score=1行将再次读取,从而将分数变量更改回1(当玩家得分后为2时) 作为一个经验很少的人,我很难理解如何处理这个问题。如果你想让分数只停留在那一段时间,你可以把它作为一个参数传递给你的游戏场景 例如: class GameSc

我正在构建一个简单的游戏,为了跟踪分数,我只需使用一个
score
变量,该变量最初为
var score=1
,然后当玩家得分时,该变量将增加1。问题是,当游戏切换屏幕一秒钟(玩家获胜时,我有一个简短的转换场景),然后返回到主GameSecene.swift文件时,
var score=1
行将再次读取,从而将分数变量更改回1(当玩家得分后为2时)


作为一个经验很少的人,我很难理解如何处理这个问题。

如果你想让分数只停留在那一段时间,你可以把它作为一个参数传递给你的游戏场景

例如:

class GameScene: SKScene {

    var score: Int = 0

    init(size: CGSize, score: Int) {
        self.score = score
        super.init(size: size)
    }
然后当你想过渡的时候

let gameScene = GameScene(size: self.size, score: self.score)
self.view!.presentScene(gameScene, transition: SKTransition.fadeWithDuration(0.3))

这是可行的,只需添加“required init!”!(coder-aDecoder:NSCoder){super.init(coder:aDecoder)}'在初始化代码下。如果它对您有帮助,请单击我的答案旁边的复选框以标记为正确:)