如何保持一共得到了多少分
How to keep a total of how many points have been scored overall
我想跟踪这个人玩多少场比赛,总共得了多少分。例如,如果一个人玩这个游戏25次,每次得分100分,那么他的总分就是2500分。这是我在游戏中增加分数的方法:
let waitScore = SKAction.waitForDuration(1.0) //add score every second
let incrementScore = SKAction.runBlock ({
++self.score
self.scoreLabel.text = "\(self.score)"}) //update score label with score
self.runAction(SKAction.repeatActionForever(SKAction.sequence([waitScore,incrementScore])))
总分会在不同的场景中显示,所以我想我需要使用NSUser默认值保存总分,将其加载到正在计算分数的游戏场景中,并以某种方式将加载的总分添加到当前分数然后保存总分?!我希望这是有道理的。
写入:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:10 forKey:@"score"];
[defaults synchronize];
阅读:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSInteger score = [defaults integerForKey:@"score"];
在 class
之外的某处定义一个便利常量 totalScoreKey
let totalScoreKey = "totalScore"
在AppDelegate中class注册keytotalScore
,例如在init
方法中
override init()
{
let userDefaults = NSUserDefaults.standardUserDefaults()
let defaultValues = [totalScoreKey: 0]
userDefaults.registerDefaults(defaultValues)
}
getTotalScore()
阅读并returns总分。
该方法可以在任何class
中实现
func getTotalScore() -> Int
{
let userDefaults = NSUserDefaults.standardUserDefaults()
return userDefaults.integerForKey(totalScoreKey)
}
updateTotalScore()
从用户默认值中读取总分 将值添加到 self.score
中并将值写回。
该方法必须在包含变量 score
的 class 中实现
func updateTotalScore()
{
let userDefaults = NSUserDefaults.standardUserDefaults()
var totalScore = userDefaults.integerForKey(totalScoreKey)
totalScore += self.score
userDefaults.setInteger(totalScore, forKey: totalScoreKey)
}
我想跟踪这个人玩多少场比赛,总共得了多少分。例如,如果一个人玩这个游戏25次,每次得分100分,那么他的总分就是2500分。这是我在游戏中增加分数的方法:
let waitScore = SKAction.waitForDuration(1.0) //add score every second
let incrementScore = SKAction.runBlock ({
++self.score
self.scoreLabel.text = "\(self.score)"}) //update score label with score
self.runAction(SKAction.repeatActionForever(SKAction.sequence([waitScore,incrementScore])))
总分会在不同的场景中显示,所以我想我需要使用NSUser默认值保存总分,将其加载到正在计算分数的游戏场景中,并以某种方式将加载的总分添加到当前分数然后保存总分?!我希望这是有道理的。
写入:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:10 forKey:@"score"];
[defaults synchronize];
阅读:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSInteger score = [defaults integerForKey:@"score"];
在 class
之外的某处定义一个便利常量totalScoreKey
let totalScoreKey = "totalScore"
在AppDelegate中class注册key
totalScore
,例如在init
方法中override init() { let userDefaults = NSUserDefaults.standardUserDefaults() let defaultValues = [totalScoreKey: 0] userDefaults.registerDefaults(defaultValues) }
中实现getTotalScore()
阅读并returns总分。
该方法可以在任何classfunc getTotalScore() -> Int { let userDefaults = NSUserDefaults.standardUserDefaults() return userDefaults.integerForKey(totalScoreKey) }
的 class 中实现updateTotalScore()
从用户默认值中读取总分 将值添加到self.score
中并将值写回。
该方法必须在包含变量score
func updateTotalScore() { let userDefaults = NSUserDefaults.standardUserDefaults() var totalScore = userDefaults.integerForKey(totalScoreKey) totalScore += self.score userDefaults.setInteger(totalScore, forKey: totalScoreKey) }