このガイドでは、Android アプリでリーダーボード API を使用して、視覚的なリーダーボードを作成する方法、プレーヤーのスコアを記録する方法、以前のゲーム セッションのスコアと比較する方法について説明します。API は com.google.android.gms.games パッケージと com.google.android.gms.games.leaderboards パッケージに含まれています。
始める前に
リーダーボード ゲームのコンセプトをまだ確認されていない場合は、確認することをおすすめします。
リーダーボード API を使用してコーディングを開始する前に:
Google Play 開発者サービス SDK の設定ガイドに記載されている手順に沿って、アプリをインストールして Google Play Games サービスを使用できるように設定します。
GitHub の Android サンプルページで、リーダーボードのコードサンプルをダウンロードして確認します。
品質チェックリストで説明されている推奨事項を確認します。
リーダーボード クライアントを取得する
リーダーボード API の使用を開始するには、まずゲームで
LeaderboardsClient オブジェクトを取得する必要があります。
そのためには、PlayGames.getLeaderboardsClient()
メソッドを呼び出してアクティビティを渡します。
プレーヤーのスコアを更新する
プレーヤーのスコアが変化した場合
(プレーヤーがゲームを終了した場合など)、ゲームでは
LeaderboardsClient.submitScore()を呼び出し、
リーダーボード ID と未加工スコア値を渡して、リーダーボードのスコアを更新できます。
アプリがプレーヤーのスコアを更新する方法を次のコード スニペットに示します。
PlayGames.getLeaderboardsClient(this)
.submitScore(getString(R.string.leaderboard_id), 1337);strings.xml ファイルでリーダーボード ID を定義し、ゲームがリソース ID でリーダーボードを参照できるようにすることをおすすめします。呼び出しを行いプレーヤー スコアを更新して読み込む場合は、API の割り当てを超えないように、こちらのベスト プラクティスにも従ってください。
リーダーボードを表示する
リーダーボードを表示するには、
LeaderboardsClient.getLeaderboardIntent() を呼び出して
Intent を取得し、
デフォルトのリーダーボード ユーザー インターフェースを作成します。その後、ゲームで
UI を呼び出して
startActivityForResult表示できます。
アプリがプレーヤーのスコアを更新する方法を次のコード スニペットに示します。
コード スニペットで、RC_LEADERBOARD_UI はリクエスト コードの任意の整数です。
private static final int RC_LEADERBOARD_UI = 9004; private void showLeaderboard() { PlayGames.getLeaderboardsClient(this) .getLeaderboardIntent(getString(R.string.leaderboard_id)) .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_LEADERBOARD_UI); } }); }
結果が返されなくても startActivityForResult を使用する必要があります。
これにより、API は呼び出し元のパッケージの ID を取得できます。次の図は、デフォルトのリーダーボード UI の例を示しています。