Bu kılavuzda, Android uygulamalarında görsel skor tabloları oluşturmak, bir oyuncunun skorunu kaydetmek ve skoru oyuncunun önceki oyun oturumlarındaki puanıyla karşılaştırmak için skor tablosu API'larının nasıl kullanılacağı gösterilmektedir. 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ı oyun konseptlerini incelemeniz faydalı olabilir.
Skor tablosu API'larını kullanarak kodlamaya başlamadan önce:
Google Play Hizmetleri SDK'sını kurma kılavuzundaki, Google Play Games Hizmetleri'ni kullanmak üzere uygulamanızı yükleme ve ayarlama talimatlarını uygulayın.
Google Play Console kılavuzundaki talimatları uygulayarak oyununuzun görüntülemesini veya güncellemesini istediğiniz skor tablolarını tanımlayın.
GiHub'daki Android örnekleri sayfasından skor tablosu kod örneklerini indirip inceleyin.
Kalite Kontrol Listesi'nde açıklanan önerilere aşina olun.
Skor tablosu istemcisini alma
Leaderboards API'yi kullanmaya başlamak için oyununuzun önce bir LeaderboardsClient
nesnesi edinmesi gerekir.
Bunu, Games.getLeadeboardsClient()
yöntemini çağırıp etkinliği ileterek yapabilirsiniz.
Oyuncunun skorunu güncelleyin
Oyuncunun puanı değiştiğinde (örneğin, oyuncu oyunu bitirdiğinde) LeaderboardsClient.submitScore()
yöntemini çağırıp skor tablosu kimliğini ve ham skor değerini geçerek skoru skor tablosunda güncelleyebilir.
Aşağıdaki kod snippet'inde, uygulamanızın oyuncunun skorunu nasıl güncelleyebileceği gösterilmektedir:
PlayGames.getLeaderboardsClient(this) .submitScore(getString(R.string.leaderboard_id), 1337);
strings.xml
dosyanızda skor tablosu kimliğini tanımlamak iyi bir uygulamadır. Böylece oyununuz, skor tablolarına kaynak kimliğine göre referans verebilir. Oyuncu puanlarını güncellemek ve yüklemek için çağrı yaparken API kotanızı aşmamak için bu en iyi uygulamaları da uyguladığınızdan emin olun.
Skor tablosu görüntüleme
Skor tablosunu göstermek için LeaderboardsClient.getLeaderboardIntent()
numaralı telefonu arayarak Intent
göndererek varsayılan leaderboard kullanıcı arayüzünü oluşturun. Daha sonra oyununuz, startActivityForResult
yöntemini çağırarak kullanıcı arayüzünü açabilir.
Aşağıdaki kod snippet'i, uygulamanızın oyuncunun skorunu 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); } }); }
Hiçbir sonuç döndürülmese de API'nin çağıran paketin kimliğini edinebilmesi için startActivityForResult
kullanmanız gerekir. Varsayılan skor tablosu kullanıcı arayüzüne
ilişkin bir örneği aşağıda görebilirsiniz.