このガイドでは、Android アプリでリーダーボード API を使用する方法について説明します
視覚的なリーダーボードの作成、プレーヤーのスコアの記録、スコアの比較を行えます。
前回のゲーム セッションのプレーヤーのスコアと比較します。API は com.google.android.gms.games
パッケージと com.google.android.gms.games.leaderboards
パッケージに含まれています。
始める前に
リーダーボード ゲームのコンセプトをまだ確認されていない場合は、確認することをおすすめします。
リーダーボード API を使用してコーディングを開始する前に:
- 手順に沿ってアプリをインストールし、設定してください Google Play Games サービス、 Google Play 開発者サービス SDK のセットアップに関するガイドをご覧ください。
- ゲームで表示または更新するリーダーボードを定義します。 Google Play Console ガイドの手順に沿って進めてください。
- 次の URL からリーダーボードのコードサンプルをダウンロードして確認してください: Android のサンプルページ
- 品質チェックリストで説明されている推奨事項を確認します。
リーダーボード クライアントを取得する
リーダーボード API の使用を開始するには、まずゲームで LeaderboardsClient
オブジェクトを取得する必要があります。そのためには、Games.getLeadeboardsClient()
メソッドを呼び出してアクティビティを渡します。
プレーヤーのスコアを更新する
プレーヤーのスコアが変化した場合(プレーヤーがゲームを終了した場合など)、ゲームでは LeaderboardsClient.submitScore()
を呼び出し、リーダーボード ID と未加工スコア値を渡して、リーダーボードのスコアを更新できます。
アプリがプレーヤーのスコアを更新する方法を次のコード スニペットに示します。
PlayGames.getLeaderboardsClient(this) .submitScore(getString(R.string.leaderboard_id), 1337);
strings.xml
ファイルでリーダーボード ID を定義し、ゲームがリソース ID でリーダーボードを参照できるようにすることをおすすめします。呼び出しの発信先
プレーヤーのスコアの更新と読み込みについては、
API 割り当てを超えないようにするためのベスト プラクティスをご覧ください。
リーダーボードの表示
リーダーボードを表示するには、LeaderboardsClient.getLeaderboardIntent()
を呼び出して Intent
を取得し、デフォルトのリーダーボード ユーザー インターフェースを作成します。その後、ゲームで startActivityForResult
を呼び出して UI を表示できます。
アプリがプレーヤーのスコアを更新する方法を次のコード スニペットに示します。コード スニペットで、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 の例を以下に示します。