Swift 在其他场景中调用默认值
我听从了这个建议。我现在有Swift 在其他场景中调用默认值,swift,sprite-kit,scene,Swift,Sprite Kit,Scene,我听从了这个建议。我现在有 class GameOverScene: SKScene { var score = 0 override func didMoveToView(view: SKView) { NSUserDefaults.standardUserDefaults().integerForKey("highscore") if score > NSUserDefaults.standardUserDefaults().integerForKey("high
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
闭包的第一行中所做的那样 线路
NSUserDefaults.standardUserDefaults().integerForKey("highscore")
什么也不做(两次)。您可以通过将值分配给变量,从用户默认值中检索值,例如显示值
let score = NSUserDefaults.standardUserDefaults().integerForKey("highscore")
label.text = "\(score)"
您可以设置它,就像您在
if
闭包的第一行中所做的那样 只需调用NSUserDefaults.standardUserDefaults().IntegerWorkey(“highscore”)
?只需调用NSUserDefaults.standardUserDefaults().IntegerWorkey(“highscore”)
?但我可以在另一个场景中检索它们吗。例如,我的游戏场景中有let score=NSUserDefaults.standardUserDefaults().IntegerWorkey(“highscore”)
,但我想在我的游戏场景中显示它。这似乎不起作用。您的代码没有显示它们,因为您没有将读取值指定给变量。但是我可以在另一个场景中检索它们吗。例如,我的游戏场景中有let score=NSUserDefaults.standardUserDefaults().IntegerWorkey(“highscore”)
,但我想在我的游戏场景中显示它。这似乎不起作用。您的代码没有显示它们,因为您没有将读取值赋给变量。