本指南說明如何在 Android 應用程式中使用排行榜 API,建立圖像排行榜、記錄玩家分數,並與前一個遊戲工作階段的玩家分數比較。您可以在 com.google.android.gms.games
和 com.google.android.gms.games.leaderboards
等套件中取得 API。
事前準備
建議您先複習排行榜遊戲概念,這會對您很有幫助。
開始使用排行榜 API 編寫程式碼之前:
按照「設定 Google Play 服務 SDK」指南的說明安裝並設定應用程式,以便使用 Google Play 遊戲服務。
按照 Google Play 管理中心指南的說明定義遊戲想顯示或更新的排行榜。
下載並詳閱 GitHub Android 範例頁面的排行榜程式碼範例。
熟悉「品質檢查清單」中所列的建議。
取得排行榜用戶端
遊戲必須先取得 LeaderboardsClient
物件,才能使用排行榜 API。要取得此物件,您可以呼叫 PlayGames.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 取得呼叫套件的識別身分。以下是預設排行榜 UI 的範例。