Osiągnięcia w grach na Androida

Z tego przewodnika dowiesz się, jak używać w aplikacji na Androida interfejsów API osiągnięć, by odblokowywać i wyświetlać osiągnięcia w grze. Interfejsy API można znaleźć w pakietach com.google.android.gms.games i com.google.android.gms.games.achievements.

Zanim zaczniesz

W razie potrzeby zapoznaj się z pojęciami dotyczącymi gier z osiągnięciami.

Zanim zaczniesz tworzyć kod z użyciem interfejsu Osiągnięcia API:

Pobierz klienta osiągnięć

Aby zacząć korzystać z interfejsu API osiągnięć, Twoja gra musi najpierw uzyskać obiekt AchievementsClient. Możesz to zrobić, wywołując metodę Games.getAchievementClient() i przekazując aktywność.

Odblokuj osiągnięcia

Aby odblokować osiągnięcie, wywołaj metodę AchievementsClient.unlock() i przekaż jego identyfikator.

Ten fragment kodu pokazuje, jak aplikacja może odblokowywać osiągnięcia:

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

Jeśli osiągnięcie jest przyrostowe (czyli do jego odblokowania trzeba wykonać kilka czynności), użyj wywołania AchievementsClient.increment().

Ten fragment kodu pokazuje, jak aplikacja może pomóc graczowi w osiągnięciu sukcesu:

PlayGames.getAchievementsClient(this).increment(getString(R.string.my_achievement_id), 1);

Nie musisz pisać dodatkowego kodu, aby odblokować osiągnięcie. Usługi gier Google Play odblokowują je automatycznie po wykonaniu wymaganej liczby kroków.

Sprawdzoną metodą jest zdefiniowanie identyfikatorów osiągnięć w pliku strings.xml, tak by gra mogła odwoływać się do osiągnięć według identyfikatora zasobu. Podczas wywoływania aktualizacji i wczytywania osiągnięć przestrzegaj tych sprawdzonych metod, aby nie przekroczyć limitu interfejsu API.

Wyświetl osiągnięcia

Aby wyświetlić osiągnięcia gracza, wywołaj AchievementsClient.getAchievementsIntent(), aby uzyskać interfejs Intent umożliwiający utworzenie domyślnego interfejsu osiągnięć. Interfejs może zostać wyświetlony przez grę, wywołując metodę startActivityForResult.

Ten fragment kodu pokazuje, jak aplikacja może wyświetlać domyślny interfejs osiągnięcia. We fragmencie kodu RC_ACHIEVEMENT_UI to dowolna liczba całkowita, której gra używa jako kodu żądania.

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);
        }
      });
}

Poniżej znajdziesz przykład domyślnego interfejsu osiągnięć.