Bu kılavuzda, görsel skor tabloları oluşturmak, oyuncuların skorlarını kaydetmek ve skorları önceki oyun oturumlarındaki oyuncu skorlarıyla karşılaştırmak için Android uygulamasında skor tabloları API'lerinin nasıl kullanılacağı açıklanmaktadır. API'leri com.google.android.gms.games ve com.google.android.gms.games.leaderboards paketlerinde bulabilirsiniz.
Başlamadan önce
Henüz yapmadıysanız lider tablolarıyla ilgili oyun kavramlarını incelemeniz faydalı olabilir.
Liderlik tabloları API'lerini kullanarak kod yazmaya başlamadan önce:
Uygulamanızı yükleme ve Google Play Games Hizmetleri'ni kullanacak şekilde ayarlama talimatlarını Google Play Hizmetleri SDK'sını ayarlama kılavuzunda bulabilirsiniz.
Google Play Console kılavuzundaki talimatları uygulayarak oyununuzun göstermesini veya güncellemesini istediğiniz skor tablolarını tanımlayın.
GitHub'daki Android örnekleri sayfasında skor tabloları kod örneklerini indirip inceleyin.
Kalite kontrol listesinde açıklanan önerileri inceleyin.
Liderlik tabloları istemcisini edinme
Skor tabloları API'sini kullanmaya başlamak için oyununuzun önce bir LeaderboardsClient nesnesi alması gerekir.
Bunu, PlayGames.getLeaderboardsClient() yöntemini çağırıp etkinliği ileterek yapabilirsiniz.
Oyuncunun puanını güncelleme
Oyuncunun puanı değiştiğinde (ör. oyuncu oyunu bitirdiğinde) oyununuz, LeaderboardsClient.submitScore() işlevini çağırıp skor tablosu kimliğini ve ham puan değerini ileterek oyuncunun puanını skor tablosunda 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);İyi bir uygulama olarak, skor tablosu kimliğini strings.xml dosyanızda tanımlayabilirsiniz. Böylece oyununuz, kaynak kimliğine göre skor tablolarına referans verebilir. Oyuncu puanlarını güncellemek ve yüklemek için çağrı yaparken API kotanızı aşmamak için aşağıdaki en iyi uygulamaları da uyguladığınızdan emin olun.
Skor tablosu görüntüleme
Skor tablosunu göstermek için LeaderboardsClient.getLeaderboardIntent() yöntemini çağırarak varsayılan skor tablosu kullanıcı arayüzünü oluşturmak üzere Intent alın. Ardından oyununuz, startActivityForResult yöntemini çağırarak kullanıcı arayüzünü gösterebilir.
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 kodunun rastgele bir tam sayısı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ürmese bile startActivityForResult kullanmanız gerekir.
Bu, API'nin çağrı paketinin kimliğini almasını sağlar. Aşağıdaki şekilde, varsayılan skor tablosu kullanıcı arayüzü örneği gösterilmektedir.