Bu kılavuzda, görsel skor tabloları oluşturmak, bir oyuncunun skorunu kaydetmek ve bu skoru oyuncunun önceki oyun oturumlarındaki skoruyla karşılaştırmak için Android uygulamalarında skor tablosu API'lerinin nasıl kullanılacağı gösterilmektedir. API'leri com.google.android.gms.games
ve com.google.android.gms.games.leaderboards
paketlerinde bulabilirsiniz.
Başlamadan önce
Henüz yapmadıysanız puan tablosu oyun konseptlerini incelemeniz faydalı olabilir.
Lider tabloları API'lerini kullanarak kodlamaya başlamadan önce:
Google Play Hizmetleri SDK'sını kurma kılavuzundaki Google Play Oyun Hizmetleri'ni kullanmak için uygulamanızı yükleme ve ayarlama talimatlarını uygulayın.
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 yer alan liderlik tablosu kod örneklerini indirip inceleyin.
Kalite Kontrol Listesi'nde açıklanan önerileri inceleyin.
Liderlik tabloları istemcisini alma
Skor tabloları API'sini kullanmaya başlamak için oyununuzun önce bir LeaderboardsClient
nesnesi alması gerekir.
Bunu, PlayGames.getLeadeboardsClient()
yöntemini çağırıp etkinliği ileterek yapabilirsiniz.
Oyuncunun puanını güncelleme
Oyuncunun puanı değiştiğinde (örneğin, oyuncu oyunu tamamladığında) oyununuz LeaderboardsClient.submitScore()
işlevini çağırarak ve liderlik tablosu kimliğini ve ham puan değerini ileterek oyuncunun liderlik tablosundaki puanını güncelleyebilir.
Aşağıdaki kod snippet'inde, uygulamanızın oyuncunun puanını nasıl güncelleyebileceği gösterilmektedir:
PlayGames.getLeaderboardsClient(this) .submitScore(getString(R.string.leaderboard_id), 1337);
Oyununuzun skor tablolarına kaynak kimliğine göre referans verebilmesi için skor tablosu kimliğini strings.xml
dosyanızda tanımlamak iyi bir uygulamadır. Oyuncu puanlarını güncellemek ve yüklemek için çağrılar yaparken API kotanızı aşmamak üzere aşağıdaki en iyi uygulamalardan da yararlanın.
Skor tablosu görüntüleme
Skor tablosunu görüntülemek için LeaderboardsClient.getLeaderboardIntent()
çağrısı yaparak varsayılan skor tablosu kullanıcı arayüzünü oluşturmak üzere Intent
alın. Ardından oyununuz startActivityForResult
çağrısı yaparak kullanıcı arayüzünü açabilir.
Aşağıdaki kod snippet'inde, uygulamanızın oyuncunun puanını nasıl güncelleyebileceği gösterilmektedir. 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); } }); }
Hiçbir sonuç döndürülmese bile API'nin arayan paketin kimliğini alabilmesi için startActivityForResult
kullanmanız gerekir. Varsayılan leaderboard kullanıcı arayüzü örneği aşağıda gösterilmiştir.