Я продвигаюсь с моим первым игровым приложением iOS, в настоящее время я работаю над элементом с высоким рейтингом, и если кто-то будет так любезным, чтобы помочь мне в использовании правильный код.Swift iOS - Установить рекорды в игреScene
Я следил за несколькими учебниками со смешанными результатами, пока я увеличиваю счет на 1 для каждого нажатия на экран (будет изменен, но будет использоваться для цели этого сообщения), это работает отлично, но мне нужно некоторые помогают экономить как высокий балл, используя NSUserDefaults
, так и отображая высокий балл.
Ниже приводится выдержка из моего кода, в настоящее время оценка работает отлично, но высокий балл остается на 0 и не увеличивается. Любая помощь будет оценена!
Вот мой код .....
Спасибо.
EDITED С переработан КОД
// in gameScene:
var scoreLabelNode = SKLabelNode()
var score = NSInteger()
var highScoreLabelNode = SKLabelNode()
var highScore = NSInteger()
// in did move to view
score = 0
scoreLabelNode.fontName = "Helvetica-Bold"
scoreLabelNode.position = CGPoint(x: self.frame.size.width/2.8, y: self.frame.size.height/1.2)
scoreLabelNode.fontSize = 20
scoreLabelNode.alpha = 0.2
scoreLabelNode.zPosition = -30
scoreLabelNode.text = "Score \(score)"
self.addChild(scoreLabelNode)
// start of high score
var highScoreDefault = NSUserDefaults.standardUserDefaults()
if (highScoreDefault.valueForKey("highScore") != nil){
highScore = highScoreDefault.valueForKey("highscore") as! NSInteger!
highScoreLabelNode.text = NSString(format: "highscore : %i", highScore) as String
}
// highScore = 0
// if (score > highScore) {
// highScore = score
// highScoreLabelNode.text = NSString(format: "highscore : %i", highScore) as String
// }
highScoreLabelNode.fontName = "Helvetica-Bold"
highScoreLabelNode.position = CGPoint(x: self.frame.size.width/2.6, y: self.frame.size.height/1.3)
highScoreLabelNode.fontSize = 20
highScoreLabelNode.alpha = 0.2
highScoreLabelNode.zPosition = -30
highScoreLabelNode.text = "High Score \(score)"
self.addChild(highScoreLabelNode)
// in touches began
let incrementScore = SKAction.runBlock ({
++self.score
self.scoreLabelNode.text = "Score \(self.score)"
})
self.runAction(incrementScore)
// in update before each frame
// highScore = 0
if (score > highScore) {
highScore = score
highScoreLabelNode.text = NSString(format: "highscore : %i", highScore) as String
}
спасибо за ответ, есть не больше кода и вашего права, я вообще не называю код, как и где вы могли бы предложить мне это сделать? –
, вы предпочтительно должны положить эту часть в метод. назовите это func updateHighScore, например. И назовите этот метод, когда вы будете готовы проверить, превышает ли ваш текущий счет высокий показатель. Например: когда игра заканчивается (когда игрок умирает или что-то еще) – dorian
, пожалуйста, отметьте мой ответ как ответ, если это ответит на ваш вопрос. Если у вас возникнут дополнительные вопросы, я могу попытаться помочь. – dorian