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)}'在初始化代码下。如果它对您有帮助,请单击我的答案旁边的复选框以标记为正确:)