iOS
GameCenterリーダーボード
サーチ…
GameCenterリーダーボード
前提条件:
- Appleデベロッパーアカウント
- iTunesConnectを使用したGameCenterリーダーボードのセットアップ
GameCenterリーダーボードの設定:
- iTunesConnectにサインインする
- マイアプリに移動します。あなたのプロジェクト用のアプリケーションを作成し、次にフィーチャーに移動します 。
- ゲームセンターをクリック
- [リーダーボード]の横にあるプラス記号をクリックします。
- リーダーボードタイプにはシングルリーダーボードを選択してください。
- 参照用のリーダーボード参照名を作成します。
- スコアを報告するときにあなたのアプリが参照するためのリーダーボードIDを作成します。
- スコア形式を整数に設定する
- スコアの提出はベストスコアになります
- [ 言語の追加]をクリックし、エントリを入力します。
作成したLeaderboardID
をコピーして、Xcodeに頭を向ける。
Xcodeの操作
私たちが取り組む4つの機能があります。
フレームワークのインポートとプロトコルの設定
ユーザーがGameCenterにサインインしていることを確認する
GameCenterにスコアを報告する
リーダーボードの表示
GKGameCenterControllerDelegate
import GameKit
GKGameCenterControllerDelegate
import GameKit
GKGameCenterControllerDelegate
今度は、ユーザーがGameCenterにサインインしているかどうか確認したい
func authenticateLocalPlayer() {
let localPlayer = GKLocalPlayer.localPlayer()
localPlayer.authenticateHandler = { (viewController, error) -> Void in
if viewController != nil {
//If the user is not signed in to GameCenter, we make them sign in
let vc:UIViewController = self.view!.window!.rootViewController!
vc.presentViewController(viewController!, animated: true, completion: nil)
} else {
//Do something here if you want
}
}
}
- ユーザーがアプリを使用していて、突然ユーザーに新しい高得点がある場合は、以下の関数を呼び出して高得点を報告します。
以下の関数は、2つのパラメータを保持します。
文字列として定義され、iTunesConnectで作成したleaderboardIDを入力するために使用されるIdentifier
。
score
のユーザーになりますintとして定義されてiTunesConnectに提出するスコア
func saveHighScore(identifier:String, score:Int) {
if GKLocalPlayer.localPlayer().authenticated {
let scoreReporter = GKScore(leaderboardIdentifier: identifier)
scoreReporter.value = Int64(score)
let scoreArray:[GKScore] = [scoreReporter]
GKScore.reportScores(scoreArray, withCompletionHandler: {
error -> Void in
if error != nil {
print("Error")
} else {
}
})
}
}
- ユーザーがリーダーボードを見たい場合は、以下の関数を呼び出してください
//This function will show GameCenter leaderboards and Achievements if you call this function.
func showGameCenter() {
let gameCenterViewController = GKGameCenterViewController()
gameCenterViewController.gameCenterDelegate = self
let vc:UIViewController = self.view!.window!.rootViewController!
vc.presentViewController(gameCenterViewController, animated: true, completion:nil)
}
//This function closes gameCenter after showing.
func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController) {
gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
self.gameCenterAchievements.removeAll()
}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow