Android Oyununda Skor Tabloları

Bu rehber, bir Android uygulamasında skor tablosu API'lerini kullanarak görsel skor tabloları oluşturma, bir oyuncunun puanını kaydetme ve önceki oyun oturumlarında oyuncunun puanıyla karşılaştırma yapmayı gösterir. API'ler com.google.android.gms.games ve com.google.android.gms.games.leaderboards paketlerinde bulunabilir.

Başlamadan önce

Henüz yapmadıysanız skor tablolarıyla ilgili oyun kavramlarını incelemeniz faydalı olabilir.

Leaderboard API'lerini kullanarak kodlamaya başlamadan önce:

Skor tabloları istemcisini alma

Skor tabloları API'sini kullanmaya başlamak için oyununuzun önce bir LeaderboardsClient nesnesi edinmesi gerekir. Bunu, Games.getLeadeboardsClient() yöntemini çağırıp etkinliği ileterek yapabilirsiniz.

Oyuncu puanı güncelleniyor

Oyuncunun puanı değiştiğinde (örneğin, oyuncu oyunu bitirdiğinde) oyununuz, LeaderboardsClient.submitScore() yöntemini çağırarak skor tablosu kimliğini ve ham puan değerini ileterek skor tablosundaki skorunu güncelleyebilir.

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

Oyununuzun skor tablolarına kaynak kimliğine göre referans verebilmesi için strings.xml dosyanızda skor tablosu kimliğini tanımlamak iyi bir uygulamadır. Oyuncu skorlarını güncellemek ve yüklemek için çağrı yaparken API kotanızı aşmamak amacıyla bu en iyi uygulamaları uyguladığınızdan emin olun.

Skor tablosunu görüntüleme

Skor tablosunu görüntülemek için LeaderboardsClient.getLeaderboardIntent() yöntemini çağırarak Intent adresine gidip varsayılan leaderboard kullanıcı arayüzünü oluşturun. Ardından oyununuz, startActivityForResult çağırarak kullanıcı arayüzünü açabilir.

Aşağıdaki kod snippet'i, uygulamanızın oyuncunun puanını nasıl güncelleyebileceğini gösterir. Kod snippet'inde 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);
        }
      });
}

Sonuç döndürülmese de API'nin çağrı paketinin kimliğini alabilmesi için startActivityForResult kullanmamız gerektiğini unutmayın. Varsayılan skor tablosu kullanıcı arayüzünün bir örneği aşağıda gösterilmektedir.