0
我想更新一个人在我的游戏中跳跃的总次数,但我遇到了一些问题。以下是游戏中发生跳跃的变量以及发生加时跳跃的次数。更新变量的NSUserDefaults
var timesJumped: Int = 0
var totalTimesJumped: Int = 0
我有一个变量NSUserDefaults
,所以它记得甚至当应用程序关闭或关闭多少次。
var timesJumpedTotal = NSUserDefaults.standardUserDefaults().integerForKey("times jumped")
我有这个代码块,如果timesJumpedTotal
应该始终运行,所以当我尝试和文本设置为这个timesJumpedTotal
我得到一个空白的文本字段是真实的运行。是否有一个原因?
if timesJumpedTotal >= 0 {
totalTimesJumped = totalTimesJumped + timesJumped
NSUserDefaults.standardUserDefaults().setInteger(totalTimesJumped, forKey: "times jumped")
}
在SKScene,我想显示这个统计我有这样的代码来设置一个节点的文本到totalTimesJumped
全文:
let timesJumped = NSUserDefaults.standardUserDefaults().integerForKey("times jumped")
totalTimesjumped = childNodeWithName("TotalTimesJumped") as! SKLabelNode
totalTimesjumped.text = "\(totalTimesjumped)"
我不知道为什么会这样,有没有人有任何想法?
刚才我也试过这个。
totalTimesJumped = totalTimesJumped + timesJumped
timesJumpedTotal = totalTimesJumped
NSUserDefaults.standardUserDefaults().setInteger(timesJumped, forKey: "high score")
NSUserDefaults.standardUserDefaults().synchronize()
你可以检查一个断点,NSUserDefaults.standardUserDefaults()。setInteger(totalTimesJumped,forKey:“次跳”)被调用,并且它在你之前完成尝试取值?另外,我建议你为你的密钥使用不同的方法,声明一个常量让timesJumpedKey =“com.yourgame.timesjump”,并用它作为你的密钥(com.yourgame ...是为了保证它的唯一性) 。 –