Android 遊戲成就

本指南說明如何在 Android 應用程式中使用成就 API 即可在遊戲中解鎖並顯示成就。您可以在 com.google.android.gms.gamescom.google.android.gms.games.achievements 等套件中取得 API。

事前準備

建議您先複習成就遊戲概念,這會對您很有幫助。

在使用成就 API 撰寫程式碼之前:

取得成就用戶端

如要使用成就 API,遊戲必須先取得 AchievementsClient 物件。方法是呼叫 Games.getAchievementClient() 方法,並傳入活動和 目前玩家的 GoogleSignInAccount。如要瞭解如何擷取 玩家帳戶資訊,請參閱 Android 遊戲登入

解鎖成就

如要解鎖成就,請呼叫 AchievementsClient.unlock() 方法,並 傳遞成就 ID

以下程式碼片段將展示應用程式如何解鎖成就:

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .unlock(getString(R.string.my_achievement_id));

如果成就是「漸進式」類型的 (也就是需要執行幾個步驟, 解鎖),請改為撥打 AchievementsClient.increment()

以下程式碼片段將展示應用程式如何漸進式累計玩家成就:

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .increment(getString(R.string.my_achievement_id), 1);

不需要撰寫額外的程式碼即可解開成就。Google Play 遊戲服務 在達到必要的步數時,自動解鎖成就。

建議您在 strings.xml 檔案中定義成就 ID,遊戲就能按照資源 ID 參照成就。呼叫更新和載入時 關卡,請務必遵循這些最佳做法, 避免超出 API 配額

顯示成就

如要顯示玩家成就,請呼叫 AchievementsClient.getAchievementsIntent() 取得 Intent 以便建立 預設成就使用者介面這樣您的遊戲就能藉由呼叫 startActivityForResult

以下程式碼片段說明應用程式如何顯示預設的成就使用者介面。 在這個片段中,RC_ACHIEVEMENT_UI 代表遊戲用來當做要求代碼的任意整數。

private static final int RC_ACHIEVEMENT_UI = 9003;

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

以下是預設成就 UI 的範例。