本指南向您展示如何在 Android 应用中使用排行榜 API 来创建可视排行榜、记录玩家分数以及将分数与玩家之前游戏会话中的分数进行比较。这些 API 位于 com.google.android.gms.games
和 com.google.android.gms.games.leaderboards
软件包中。
准备工作
如果您尚未这样做,查看排行榜游戏概念可能会有所帮助。
开始使用排行榜 API 编码之前
遵循 设置 Google Play 服务 SDK 指南中关于安装和设置应用以使用 Google Play 游戏服务的说明。
按照 Google Play 管理中心指南中的说明,定义您希望游戏显示或更新的排行榜。
在 GiHub 上的Android 示例页面中下载并查看排行榜代码示例。
熟悉质量核对清单中描述的建议。
获取排行榜客户端
要开始使用排行榜 API,您的游戏必须首先获取一个 LeaderboardsClient
对象。您可以通过调用 PlayGames.getLeadeboardsClient()
方法并传入 activity 来实现此目的。
更新玩家分数
当玩家分数改变时(例如,当玩家完成游戏时),您的游戏可以通过调用 LeaderboardsClient.submitScore()
并传入排行榜 ID 和原始分数来更新排行榜上的分数。
以下代码片段展示了您的应用如何更新玩家的分数
PlayGames.getLeaderboardsClient(this) .submitScore(getString(R.string.leaderboard_id), 1337);
一个好的做法是将排行榜 ID 定义在您的 strings.xml
文件中,这样您的游戏就可以通过资源 ID 来引用排行榜。在调用更新和加载玩家分数时,请务必遵循这些最佳实践,以避免超出您的 API 配额。
显示排行榜
要显示排行榜,请调用 LeaderboardsClient.getLeaderboardIntent()
以获取 Intent
来创建默认排行榜用户界面。然后您的游戏可以通过调用 startActivityForResult
来调出该界面。
以下代码片段显示了您的应用如何更新玩家分数。在代码片段中,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 可以获取调用包的身份。默认排行榜界面的示例如下所示。
