我听从了这个建议 post .我现在有
class GameOverScene: SKScene {
var score = 0
override func didMoveToView(view: SKView) {
NSUserDefaults.standardUserDefaults().integerForKey("highscore")
if score > NSUserDefaults.standardUserDefaults().integerForKey("highscore") {
NSUserDefaults.standardUserDefaults().setInteger(score, forKey: "highscore")
NSUserDefaults.standardUserDefaults().synchronize()
}
NSUserDefaults.standardUserDefaults().integerForKey("highscore")
}
}
我有更多代码可以在满足某个参数时将分数加 1。但我的问题是如何记忆起另一个场景中的 ("highscore") 键。游戏结束时调用另一个场景,称为 GameOverScene。
class GameOverScene: SKScene {
var gameOverLabel = SKLabelNode()
override func didMoveToView(view: SKView) {
gameOverLabel.text = //here I want the highScore to be displayed
gameOverLabel.fontColor = UIColor.blackColor()
gameOverLabel.fontName = "Helvetica"
gameOverLabel.fontSize = 100
gameOverLabel.position = CGPointMake(frame.midX, frame.midY)
self.addChild(gameOverLabel)
}
}
我需要做什么才能将高分添加到我的场景中
最佳答案
线
NSUserDefaults.standardUserDefaults().integerForKey("highscore")
什么都不做(两次)。您可以通过将用户默认值分配给变量来从用户默认值中检索值,例如显示它们
let score = NSUserDefaults.standardUserDefaults().integerForKey("highscore")
label.text = "\(score)"
您可以像在 if
闭包的第一行中那样设置它。
关于swift - NSUserDefaults 在其他场景调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31686988/