如何正确保存高分
How to save the highscore properly
抱歉,如果我已经问过这个问题,但我很难过。
我有一个 SKLabelNode 设置如下:
var label = SKLabelNode(fontNamed: "Baveuse")
class GameScene: SKScene {
func pointsLabel() -> SKLabelNode {
label.position = CGPointMake(-80, 500)
label.fontSize = 50.0
label.name = "points"
label.fontColor = UIColor.blackColor()
return label
}
并像这样递增:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
numPoints++
label.text = "\(numPoints)"
}
在单独的 SKScene 中,我是这样设置的:
let score = SKLabelNode(fontNamed: "Baveuse")
score.fontSize = 70.0
score.fontColor = SKColor.blackColor()
score.position = CGPointMake(size.width / 2, 500)
score.text = "\(numPoints)"
addChild(score)
let highScore = SKLabelNode(fontNamed: "Baveuse")
highScore.fontSize = 40.0
highScore.fontColor = UIColor(red: 88.0/255.0, green: 148.0/255.0, blue:87.0/255.0, alpha: 1.0)
highScore.text = String(format: "Best: %d", numPoints)
}
我如何才能让它从 numPoints 中获取最高分并保存它直到获得另一个高分?将post模式代码如有必要。
为此使用 NSUserDefaults
(因为您已为其添加了标签)。当游戏结束时添加此 if-statement
.
if (NSUserDefaults.standardUserDefaults().doubleForKey("highScore") >= numPoints){
// New highscore
NSUserDefaults.standardUserDefaults().setValue(numPoints, forKey: "highScore")
}
在这里检查 numPoints
值是否大于或等于(您必须检查是否要使用相等)比 NSUserDefaults highscore
中的值然后更新高分。
抱歉,如果我已经问过这个问题,但我很难过。
我有一个 SKLabelNode 设置如下:
var label = SKLabelNode(fontNamed: "Baveuse")
class GameScene: SKScene {
func pointsLabel() -> SKLabelNode {
label.position = CGPointMake(-80, 500)
label.fontSize = 50.0
label.name = "points"
label.fontColor = UIColor.blackColor()
return label
}
并像这样递增:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
numPoints++
label.text = "\(numPoints)"
}
在单独的 SKScene 中,我是这样设置的:
let score = SKLabelNode(fontNamed: "Baveuse")
score.fontSize = 70.0
score.fontColor = SKColor.blackColor()
score.position = CGPointMake(size.width / 2, 500)
score.text = "\(numPoints)"
addChild(score)
let highScore = SKLabelNode(fontNamed: "Baveuse")
highScore.fontSize = 40.0
highScore.fontColor = UIColor(red: 88.0/255.0, green: 148.0/255.0, blue:87.0/255.0, alpha: 1.0)
highScore.text = String(format: "Best: %d", numPoints)
}
我如何才能让它从 numPoints 中获取最高分并保存它直到获得另一个高分?将post模式代码如有必要。
为此使用 NSUserDefaults
(因为您已为其添加了标签)。当游戏结束时添加此 if-statement
.
if (NSUserDefaults.standardUserDefaults().doubleForKey("highScore") >= numPoints){
// New highscore
NSUserDefaults.standardUserDefaults().setValue(numPoints, forKey: "highScore")
}
在这里检查 numPoints
值是否大于或等于(您必须检查是否要使用相等)比 NSUserDefaults highscore
中的值然后更新高分。