Android 游戏成就

本指南将向您展示如何在 Android 应用程序中使用成就 API 来解锁并在游戏中显示成就。这些 API 位于 com.google.android.gms.gamescom.google.android.gms.games.achievements 包中。

开始之前

如果您尚未这样做,您可能会发现查看 成就游戏概念 会很有帮助。

在开始使用成就 API 编写代码之前

获取成就客户端

要开始使用成就 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 的示例。