Thành tích trong trò chơi Android

Tài liệu này sẽ hướng dẫn bạn cách sử dụng API thành tích trong ứng dụng Android để mở khóa và hiển thị các thành tích trong trò chơi của bạn. Bạn có thể tìm thấy các API trong các gói com.google.android.gms.gamescom.google.android.gms.games.achievements.

Trước khi bắt đầu

Nếu chưa từng có kinh nghiệm, bạn có thể xem lại các khái niệm về thành tích của trò chơi.

Trước khi bạn bắt đầu mã hóa bằng cách sử dụng API thành tích:

Tải ứng dụng thành tích

Để bắt đầu sử dụng API thành tích, trước tiên trò chơi của bạn phải có được Đối tượng AchievementsClient. Bạn có thể thực hiện việc này bằng cách gọi Phương thức Games.getAchievementClient() và truyền hoạt động vào.

Khai phá thành tích

Để mở khoá một thành tích, hãy gọi phương thức AchievementsClient.unlock() và chuyển mã thành tích.

Đoạn mã sau đây cho thấy cách ứng dụng của bạn có thể mở khóa các thành tích:

PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));

Nếu thành tích thuộc loại tăng dần (nghĩa là bạn phải thực hiện một số bước để mở khoá thiết bị), hãy gọi AchievementsClient.increment().

Đoạn mã sau đây minh hoạ cách ứng dụng của bạn có thể giúp người chơi tăng thành tích:

PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);

Bạn không cần phải viết thêm mã để mở khóa thành tích; Dịch vụ trò chơi của Google Play tự động mở khóa thành tích sau khi đạt đến số bước cần thiết.

Bạn nên xác định mã thành tích trong tệp strings.xml để trò chơi của bạn có thể tham chiếu thành tích theo mã tài nguyên. Khi thực hiện cuộc gọi để cập nhật và tải thành tích, hãy đảm bảo bạn cũng tuân theo các phương pháp hay nhất này để tránh vượt quá hạn mức API.

Hiển thị thành tích

Để hiển thị thành tích của người chơi, hãy gọi AchievementsClient.getAchievementsIntent() để nhận Intent nhằm tạo giao diện người dùng của bảng thành tích mặc định. Sau đó, trò chơi của bạn có thể hiển thị giao diện người dùng bằng cách gọi startActivityForResult.

Đoạn mã sau đây cho thấy cách ứng dụng của bạn có thể hiển thị giao diện người dùng của bảng thành tích mặc định. Trong đoạn mã, RC_ACHIEVEMENT_UI là một số nguyên tuỳ ý mà trò chơi sử dụng làm mã yêu cầu.

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);
        }
      });
}

Dưới đây là một ví dụ về giao diện người dùng của bảng thành tích mặc định.