比赛结束后整数不重置

时间:2015-02-24 23:49:01

标签: swift nsuserdefaults

**我觉得这应该很简单,但我找不到解释它的教程,不幸的是我没有足够的经验自己解决它,基本上依靠教程来学习。

我有一个游戏,如果你跳过一个对象你得到一个点。如果你愿意的话,请试着想象我,我已经设置好,所以屏幕上有两个数字。一个数字在右上角,另一个在左上角。到目前为止,当玩家跳过一个物体时,两个数字都会得+1,这就是我想要的。问题是,当玩家输掉时,两个数字都会重置。我希望左上角的值不重置,并继续添加到玩家获得的每个点。

如果有人能为我提供一个简单的解决方案,我将非常感激!!!

另外,我应该提到我使用Swift和Spritekit

好的,我已经添加了一些代码,希望我能朝正确的方向发展..

let defaults = NSUserDefaults.standardUserDefaults()

//This is the value that I want to remain constant and be stored to defaults
let totalText = SKLabelNode(fontNamed: "Masaaki-Regular")


//So this is where I set up the text in my hud, I want it to persist so instead of setting this value = "0" (like with my normal score) I set it to defaults, right? I get an error: 'Int' is not convertible to 'String'
self.totalText.text = defaults.integerForKey("total")
self.addChild(self.totalText)


//Above this is the function that adds a point to the score when the player jumps over a block
self.total++
defaults.setInteger(total, forKey: "total")
defaults.synchronize()

self.totalText.text = String(self.total)

请帮助我确定我所犯的错误(我确定有很多错误,我对此很新!)

1 个答案:

答案 0 :(得分:0)

你的问题在这里:

self.totalText.text = defaults.integerForKey("total")

您将整数分配给带有字符串的属性。

你需要转换它。例如:

let total = defaults.integerForKey("total")
self.totalText.text = "\(total)"