Android Oyununda Skor Tabloları

Bu rehber, bir Android uygulamasında skor tablosu API'lerinin nasıl kullanılacağını gösterir. görsel skor tabloları oluşturmak, bir oyuncunun skorunu kaydetmek ve skoru karşılaştırmak için ve skoru karşılaştırmalı olarak dikkat çekmenizi sağlar. API'ler, com.google.android.gms.games ve com.google.android.gms.games.leaderboards paketleri dahildir.

Başlamadan önce

Henüz yapmadıysanız skor tabloları oyunu kavramları hakkında daha fazla bilgi edinin.

Leaderboards API'lerini kullanarak kod yazmaya başlamadan önce:

Skor tablosu istemcisini edinme

Leaderboards API'sini kullanmaya başlamak için oyununuzun önce bir LeaderboardsClient nesnesi alması gerekir. Bunu, Games.getLeadeboardsClient() yöntemini çağırıp etkinliği'ne dokunun.

Oyuncunun skorunu güncelleme

Oyuncunun puanı değiştiğinde (örneğin, oyuncu oyunu bitirdiğinde) oyun LeaderboardsClient.submitScore() numarasını arayarak skor tablosunda skorunu güncelleyebilir. skor tablosu kimliğini ve ham puan değerini geçmelisiniz.

Aşağıdaki kod snippet'i, uygulamanızın oyuncunun puanını nasıl güncelleyebileceğini gösterir:

PlayGames.getLeaderboardsClient(this)
    .submitScore(getString(R.string.leaderboard_id), 1337);

strings.xml dosyanızda skor tablosu kimliğini tanımlamak iyi bir uygulamadır. Oyununuz kaynak kimliğine göre skor tablolarına referans verebilir. Çağrı yaparken oyuncu skorlarını güncelleyip yüklediğinizden en iyi uygulamalara göz atın.

Skor tablosu görüntüleme

Skor tablosunu görüntülemek için LeaderboardsClient.getLeaderboardIntent() numaralı telefonu arayıp bir Intent - Varsayılan leaderboard kullanıcı arayüzünü oluşturabilirsiniz. Oyununuz, startActivityForResult.

Aşağıdaki kod snippet'i, uygulamanızın oyuncunun puanını nasıl güncelleyebileceğini gösterir. kod snippet'i ise RC_LEADERBOARD_UI, istek kodu için rastgele bir tam sayıdır.

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

Hiçbir sonuç döndürülmese bile startActivityForResult . Varsayılan leaderboard kullanıcı arayüzü aşağıda gösterilmiştir.