Android oyunlarındaki başarılar

Bu kılavuzda, oyununuzdaki başarıların kilidini açmak ve başarıları görüntülemek için Android uygulamasında başarı API'lerinin nasıl kullanılacağı gösterilmektedir. API'leri com.google.android.gms.games ve com.google.android.gms.games.achievements paketlerinde bulabilirsiniz.

Başlamadan önce

Henüz yapmadıysanız başarı oyun kavramlarını incelemeniz faydalı olabilir.

Başarılar API'sini kullanarak kodlamaya başlamadan önce:

Başarı istemcisi alma

Başarılar API'sini kullanmaya başlamak için oyununuzun önce bir AchievementsClient nesnesi alması gerekir. Bunu, Games.getAchievementClient() yöntemini çağırarak ve etkinliği ve mevcut oynatıcı için GoogleSignInAccount öğesini ileterek yapabilirsiniz. Oyuncu hesabı bilgilerini nasıl alacağınızı öğrenmek için Android oyunlarında oturum açma başlıklı makaleyi inceleyin.

Başarıların kilidini açma

Bir başarının kilidini açmak için AchievementsClient.unlock() yöntemini çağırın ve başarı kimliğini iletin.

Aşağıdaki kod snippet'inde, uygulamanızın başarıların nasıl kilidini açabileceği gösterilmektedir:

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .unlock(getString(R.string.my_achievement_id));

Başarı artımlı türdeyse (yani kilidini açmak için birkaç adım gerekliyse) bunun yerine AchievementsClient.increment() çağrısı yapın.

Aşağıdaki kod snippet'i, uygulamanızın oynatıcının başarısını nasıl artırabileceğini gösterir:

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .increment(getString(R.string.my_achievement_id), 1);

Başarının kilidini açmak için ek kod yazmanız gerekmez. Google Play Oyun Hizmetleri, gereken adım sayısına ulaşıldığında başarının kilidini otomatik olarak açar.

Oyununuzun başarıları kaynak kimliğine göre referans verebilmesi için başarı kimliklerini strings.xml dosyasında tanımlamak iyi bir uygulamadır. Başarıları güncellemek ve yüklemek için çağrılar yaparken API kotanızı aşmamak üzere bu en iyi uygulamaları da izlediğinizden emin olun.

Başarıları görüntüleme

Bir oyuncunun başarılarını göstermek için AchievementsClient.getAchievementsIntent() numaralı telefonu arayarak varsayılan başarılar kullanıcı arayüzünü oluşturmak için Intent alın. Ardından oyununuz startActivityForResult çağrısını yaparak kullanıcı arayüzünü açabilir.

Aşağıdaki kod snippet'inde, uygulamanızın varsayılan başarı kullanıcı arayüzünü nasıl görüntüleyebileceği gösterilmektedir. Snippet'te RC_ACHIEVEMENT_UI, oyunun istek kodu olarak kullandığı rastgele bir tam sayıdır.

private static final int RC_ACHIEVEMENT_UI = 9003;

private void showAchievements() {
  Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

Varsayılan başarı kullanıcı arayüzü örneği aşağıda gösterilmiştir.