Papan peringkat di Game Android

Panduan ini menunjukkan cara menggunakan API papan peringkat dalam aplikasi Android untuk membuat papan peringkat visual, merekam skor pemain, dan membandingkan skornya terhadap skor pemain dari sesi pertandingan 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.

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:

PlayGames.getLeaderboardsClient(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 ke memperbarui dan memuat skor pemain, pastikan juga untuk mengikuti praktik terbaik 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() {
  PlayGames.getLeaderboardsClient(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 dikembalikan, kita harus menggunakan startActivityForResult agar API bisa memperoleh identitas paket panggilan. Contoh UI papan peringkat default ditampilkan di bawah ini.