Pencapaian dalam game Android

Panduan ini menunjukkan cara menggunakan API pencapaian di aplikasi Android untuk membuka kunci dan menampilkan pencapaian dalam game Anda. API ini dapat ditemukan dalam paket com.google.android.gms.games dan com.google.android.gms.games.achievements.

Sebelum memulai

Jika Anda belum melakukannya, sebaiknya tinjau konsep game pencapaian.

Sebelum Anda mulai membuat kode menggunakan API pencapaian:

Mendapatkan klien pencapaian

Untuk mulai menggunakan API pencapaian, game Anda harus mendapatkan objek AchievementsClient terlebih dahulu. Anda dapat melakukannya dengan memanggil metode Games.getAchievementClient() dan meneruskan aktivitas serta GoogleSignInAccount untuk pemutar saat ini. Untuk mempelajari cara mengambil informasi akun pemain, lihat Login di Game Android.

Membuka pencapaian

Untuk membuka pencapaian, panggil metode AchievementsClient.unlock() dan teruskan ID pencapaian.

Cuplikan kode berikut menunjukkan cara aplikasi Anda membuka pencapaian:

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .unlock(getString(R.string.my_achievement_id));

Jika pencapaian adalah jenis inkremental (yaitu, beberapa langkah diperlukan untuk membuka kuncinya), panggil AchievementsClient.increment().

Cuplikan kode berikut menunjukkan cara aplikasi Anda meningkatkan pencapaian pemain:

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .increment(getString(R.string.my_achievement_id), 1);

Anda tidak perlu menulis kode tambahan untuk membuka pencapaian; Layanan game Google Play akan otomatis membuka pencapaian setelah mencapai jumlah langkah yang diperlukan.

Praktik yang baik adalah menentukan ID pencapaian dalam file strings.xml, sehingga game Anda dapat mereferensikan pencapaian berdasarkan ID resource. Saat melakukan panggilan untuk mengupdate dan memuat pencapaian, pastikan Anda juga mengikuti praktik terbaik ini agar tidak melebihi kuota API Anda.

Menampilkan pencapaian

Untuk menampilkan pencapaian pemain, panggil AchievementsClient.getAchievementsIntent() untuk mendapatkan Intent guna membuat antarmuka pengguna pencapaian default. Setelah itu game Anda akan dapat menampilkan UI dengan memanggil startActivityForResult.

Cuplikan kode berikut menunjukkan cara aplikasi Anda menampilkan antarmuka pengguna pencapaian default. Dalam cuplikan, RC_ACHIEVEMENT_UI adalah bilangan bulat arbitrer yang digunakan game sebagai kode permintaan.

private static final int RC_ACHIEVEMENT_UI = 9003;

private void showAchievements() {
  Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

Contoh UI pencapaian default ditampilkan di bawah.