Android ゲームの実績

このガイドでは、実績 API を Android アプリで使用し、ゲームの実績のロックを解除して表示する方法について説明します。API は com.google.android.gms.games パッケージと com.google.android.gms.games.achievements パッケージに含まれています。

始める前に

ゲームの実績に関するコンセプトをまだ確認されていない場合は、確認することをおすすめします。

実績 API を使用してコーディングを開始する前に:

実績クライアントを取得する

実績 API の使用を開始するには、まずゲームで AchievementsClient オブジェクト。これを行うには、 Games.getAchievementClient() メソッドを呼び出し、アクティビティを渡します。

実績のロックを解除する

実績のロックを解除するには、AchievementsClient.unlock() メソッドを呼び出して 実績 ID を渡します。

次のコード スニペットは、アプリで実績のロックを解除する方法を示しています。

PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));

実績が増分タイプの場合(つまり、 (ロックを解除する)ではなく、AchievementsClient.increment() を呼び出してください。

次のコード スニペットは、アプリがプレーヤーの実績をインクリメントする方法を示しています。

PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);

実績を達成するために追加のコードを記述する必要はありません。Google Play Games サービス 必要なステップ数に達すると、実績が自動的にロック解除されます。

実績の ID を strings.xml ファイルで定義して、リソースで実績を参照できるようにすることをおすすめします。update と load を呼び出して こちらのベスト プラクティスに沿って、 API 割り当てを超過しないようにできます

実績の表示

プレーヤーの実績を表示するには、AchievementsClient.getAchievementsIntent() を呼び出します。 作成するための Intent を取得 デフォルトの実績ユーザー インターフェースです。その後、ゲームで startActivityForResult を呼び出して UI を表示できます。

次のコード スニペットは、デフォルトの実績ユーザー インターフェースをアプリで表示する方法を示しています。 スニペット内の RC_ACHIEVEMENT_UI は、ゲームがリクエスト コードとして使用する任意の整数です。

private static final int RC_ACHIEVEMENT_UI = 9003;

private void showAchievements() {
  PlayGames.getAchievementsClient(this)
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

デフォルトの実績 UI の例を以下に示します。