Android oyunlarındaki başarılar

Bu kılavuzda, oyununuzdaki başarıların kilidini açmak ve bunları göstermek için Android uygulamasında başarı API'lerinin nasıl kullanılacağı açıklanmaktadır. 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ılarla ilgili oyun kavramlarını incelemeniz faydalı olabilir.

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

Başarılar istemcisi edinme

Başarılar API'sini kullanmaya başlamak için oyununuzun önce bir AchievementsClient nesnesi alması gerekir. Bunu, Games.getAchievementClient() yöntemini çağırıp etkinliği ileterek yapabilirsiniz.

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'i, uygulamanızın başarıların kilidini nasıl açabileceğini gösterir:

PlayGames.getAchievementsClient(this).unlock(getString(R.string.my_achievement_id));

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

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

PlayGames.getAchievementsClient(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 Games Hizmetleri, gerekli adım sayısına ulaşıldığında başarının kilidini otomatik olarak açar.

Başarı kimliklerini strings.xml dosyasında tanımlamak iyi bir uygulamadır. Böylece oyununuz, kaynak kimliğine göre başarılara referans verebilir. Başarıları 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.

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

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

Aşağıdaki kod snippet'i, uygulamanızın varsayılan başarı kullanıcı arayüzünü nasıl gösterebileceğini gösterir. 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() {
  PlayGames.getAchievementsClient(this)
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

Aşağıdaki resimde, varsayılan başarılar kullanıcı arayüzünün bir örneği gösterilmektedir.

Önerilenler satırında, en yaygın olarak açıklanan başarı gösterilir. Bu başarı, oyuncunun henüz kilidini açmadığı ancak diğer oyuncuların en yüksek yüzdesinin kilidini açtığı başarıdır.