本指南將說明如何利用 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。您可以藉由呼叫 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 取得呼叫套件的識別身分。以下是預設排行榜 UI 的範例。
