本指南將說明如何運用 Android 應用程式內的成就 API 在遊戲中解鎖並顯示成就。您可以在 com.google.android.gms.games
和 com.google.android.gms.games.achievements
等套件中取得 API。
事前準備
如果您還沒複習成就遊戲概念,這些概念可能對您有幫助,建議您前往參閱。
在使用成就 API 撰寫程式碼之前:
- 按照設定 Google Play Services SDK 指南中的操作說明,安裝及設定您的應用程式以使用 Google Play 遊戲服務。
- 按照 Google Play 管理中心指南的說明操作,藉此定義想讓遊戲解鎖或顯示的成就。
- 下載並詳閱 Android 範例頁面的成就程式碼範例。
- 熟讀品質檢查清單說明的推薦事項。
取得成就用戶端
如要開始使用成就 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 遊戲服務會在達到所需步數後自動解鎖成就。
建議您在 strings.xml
檔案中定義成就 ID,以便遊戲按照資源 ID 參照成就。呼叫更新和載入作業時,請務必遵循這些最佳做法,以免超出 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 的範例。
