昨天我們成功判定遊戲失敗並且讓畫面跳轉到失敗畫面
今天我們就來完成這個遊戲最後的功能-紀錄你的分數吧!
首先呢,我們先宣告分數及最佳分數的節點、值
還有用來儲存最佳分數的UserDefaults
let scoreLabel = SKLabelNode()
let bestScoreLabel = SKLabelNode()
let defaults = UserDefaults.standard
var score = 0
var bestScore = 0
在func didMove中新增分數及最佳分數節點的屬性
scoreLabel.position.x = 100
scoreLabel.zPosition = 20
scoreLabel.fontName = "Chalkduster"
scoreLabel.fontSize = 32
scoreLabel.fontColor = .black
scoreLabel.text = "Score : \(score)"
addChild(scoreLabel)
bestScore = defaults.integer(forKey: "best")
bestScoreLabel.position.x = 670
bestScoreLabel.zPosition = 20
bestScoreLabel.fontName = "Chalkduster"
bestScoreLabel.fontSize = 32
bestScoreLabel.fontColor = .black
bestScoreLabel.text = "Bestscore : \(bestScore)"
addChild(bestScoreLabel)
在func update中固定分數與最佳分數的與人物相對的y座標
scoreLabel.position.y = player.position.y + 850
bestScoreLabel.position.y = player.position.y + 850
再來就是分數增加的function,並且在人物與平台接觸時的判定加入addScore()
func addScore(){
score = score + 1
scoreLabel.text = "Score : \(score)"
}
而當遊戲結束時,需要判斷你的分數是否大於最佳分數,如果大於的話將此分數設定成最佳分數
if score > bestScore{
bestScore = score
defaults.set(bestScore, forKey: "best")
}
如此一來,Doodle Jump小遊戲就完成啦!!
附上遊戲進行中畫面
而今天也是鐵人賽的最後一篇文章,老實說這個學期其實還蠻忙的
文章通常都是當天生出來,每天都在與時間賽跑,終於熬過30天成功完賽啦!!
如果有機會的話,就明年再見囉~