1

Swift に設定されたプログラミング言語でゲーム テクノロジのスプライト キットを使用して、Xcode 6 の iOS アプリケーションにゲーム センターのリーダーボードと実績を追加するにはどうすればよいですか?

4

1 に答える 1

1

ここに私のゲームセンターのコードがあります。これをゲームシーン コードに入れます。iTunes Connect でリーダー ボードを作成する必要があり、リーダーボード名はコードに入力したものと一致する必要があります。(私はそれを「リーダーボード名」と呼びました)。このデリゲートをクラスの先頭に追加することも非常に重要です 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))
        }
    }

}
于 2015-04-05T23:08:02.310 に答える