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:
- Google Play Hizmetleri SDK'sı oluşturma kılavuzunda, Google Play oyun hizmetlerini kullanmak için uygulamanızı yükleme ve ayarlama talimatlarını uygulayın.
- Google Play Console kılavuzundaki talimatları uygulayarak oyununuzun gösterilmesini veya güncellenmesini istediğiniz skor tablolarını tanımlayın.
- Android örnekleri sayfasından skor tablosu kod örneklerini indirip inceleyin.
- Kalite Kontrol Listesi'nde açıklanan öneriler hakkında bilgi edinin.
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.