Papan peringkat di game Android

Panduan ini menunjukkan cara menggunakan API papan peringkat di aplikasi Android untuk membuat papan peringkat visual, mencatat skor pemain, dan membandingkan skor dengan skor pemain dari sesi game sebelumnya. API ini dapat ditemukan dalam paket com.google.android.gms.games dan com.google.android.gms.games.leaderboards.

Sebelum memulai

Jika Anda belum melakukannya, sebaiknya tinjau konsep game papan peringkat.

Sebelum Anda mulai membuat kode menggunakan API papan peringkat:

Mendapatkan klien papan peringkat

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

Memperbarui skor pemain

Saat skor pemain berubah (misalnya, saat pemain menyelesaikan game), game Anda dapat memperbarui skor di papan peringkat dengan memanggil LeaderboardsClient.submitScore(), dan meneruskan ID papan peringkat dan nilai skor mentah.

Cuplikan kode berikut menunjukkan cara aplikasi Anda dalam memperbarui skor pemain:

Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .submitScore(getString(R.string.leaderboard_id), 1337);

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

Menampilkan papan peringkat

Untuk menampilkan papan peringkat, panggil LeaderboardsClient.getLeaderboardIntent() untuk mendapatkan Intent guna membuat antarmuka pengguna papan peringkat default. Setelah itu game Anda akan dapat menampilkan UI dengan memanggil startActivityForResult.

Cuplikan kode berikut menunjukkan cara aplikasi Anda memperbarui skor pemain. Dalam cuplikan kode, RC_LEADERBOARD_UI adalah bilangan bulat arbitrer untuk kode permintaan.

private static final int RC_LEADERBOARD_UI = 9004;

private void showLeaderboard() {
  Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getLeaderboardIntent(getString(R.string.leaderboard_id))
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_LEADERBOARD_UI);
        }
      });
}

Perhatikan bahwa meskipun tidak ada hasil yang ditampilkan, kita harus menggunakan startActivityForResult agar API dapat memperoleh identitas paket panggilan. Contoh UI papan peringkat default ditampilkan di bawah ini.