Как интегрировать Game Center в приложение iOS в Xcode 6 с помощью набора spite, использующего язык Swift?
Как добавить таблицы лидеров Game Center и достижения в приложение для iOS в Xcode 6, используя игровую технологию Sprite Kit с языком программирования, установленным на swift?
1 ответ
Вот мой код игрового центра. Вы поместите это в свой код игровой сцены. вы должны создать таблицу лидеров в itunes connect, и ваше имя лидера должно совпадать с тем, которое вы указали в коде. (я назвал это "leaderboardName"). Также очень важно добавить этот делегат в начало вашего класса GKGameCenterControllerDelegate
//MARK: GameCenter
//send high score to leaderboard
func saveHighscore(score:Int) {
//check if user is signed in
if GKLocalPlayer.localPlayer().authenticated {
var scoreReporter = GKScore(leaderboardIdentifier: "leaderboardName") //leaderboard id here
scoreReporter.value = Int64(score) //score variable here (same as above)
var scoreArray: [GKScore] = [scoreReporter]
GKScore.reportScores(scoreArray, {(error : NSError!) -> Void in
if error != nil {
println("error")
}
})
}
}
//shows leaderboard screen
func showLeader() {
var vc = self.view?.window?.rootViewController
var gc = GKGameCenterViewController()
gc.gameCenterDelegate = self
vc?.presentViewController(gc, animated: true, completion: nil)
}
//hides leaderboard screen
func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController!)
{
gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
}
//initiate gamecenter
func authenticateLocalPlayer(){
var localPlayer = GKLocalPlayer.localPlayer()
localPlayer.authenticateHandler = {(viewController, error) -> Void in
if (viewController != nil) {
let vc: UIViewController = self.view!.window!.rootViewController!
vc.presentViewController(viewController, animated: true, completion: nil)
}
else {
println((GKLocalPlayer.localPlayer().authenticated))
}
}
}