Pencapaian di 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 terlebih dahulu mendapatkan Objek AchievementsClient. Anda dapat melakukannya dengan memanggil Games.getAchievementClient() dan meneruskan aktivitas.

Membuka kunci pencapaian

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

Cuplikan kode berikut menunjukkan cara aplikasi Anda membuka pencapaian:

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

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

Cuplikan kode berikut menunjukkan bagaimana aplikasi Anda dapat meningkatkan pencapaian pemain:

PlayGames.getAchievementsClient(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 juga untuk mengikuti praktik terbaik ini guna agar tidak melebihi kuota API.

Menampilkan pencapaian

Untuk menampilkan pencapaian pemain, panggil AchievementsClient.getAchievementsIntent() untuk mendapatkan Intent yang akan dibuat antarmuka pengguna {i>default<i} pencapaian. 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() {
  PlayGames.getAchievementsClient(this)
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

Contoh UI pencapaian default ditampilkan di bawah.