Osiągnięcia w grach na Androida

Z tego przewodnika dowiesz się, jak korzystać z interfejsów API osiągnięć w aplikacji na Androida do odblokowywania i wyświetlania osiągnięć w grze. Interfejsy API można znaleźć w com.google.android.gms.games i com.google.android.gms.games.achievements pakietów.

Zanim zaczniesz

W razie potrzeby zapoznaj się z pomysłów na osiągnięcia.

Zanim zaczniesz pisać kod za pomocą interfejsu Attribution API:

Uzyskiwanie klienta osiągnięć

Aby zacząć korzystać z interfejsu API osiągnięć, Twoja gra musi najpierw uzyskać AchievementsClient obiektu. Aby to zrobić, wywołaj metodę Games.getAchievementClient() i zaliczania zadania.

Odblokuj osiągnięcia

Aby odblokować osiągnięcie, wywołaj funkcję AchievementsClient.unlock() i przekazać identyfikator osiągnięcia.

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 typu przyrostowego (czyli składa się z kilku kroków) wymagane do jego odblokowania), zadzwoń pod numer AchievementsClient.increment().

Ten fragment kodu pokazuje, jak aplikacja może zwiększyć osiągnięcie:

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

Aby odblokować osiągnięcie, nie musisz pisać dodatkowego kodu. Usługi gier Google Play automatycznie odblokowuje osiągnięcie, gdy osiągnie wymaganą liczbę kroków.

Warto zdefiniować identyfikatory osiągnięć w pliku strings.xml, gra może odwoływać się do osiągnięć według identyfikatora zasobu. Gdy dzwonisz do zaktualizować i wczytać osiągnięcia, pamiętaj też o tych sprawdzone metody, które pomogą uniknąć przekroczenia limitu czasu wartości interfejsu API. limit miejsca na dane.

Wyświetl osiągnięcia

Aby wyświetlić osiągnięcia gracza, wywołaj AchievementsClient.getAchievementsIntent() aby uzyskać Intent aby utworzyć domyślny interfejs osiągnięć. Gra może wtedy wyświetlić za pomocą wywołania funkcji startActivityForResult

Ten fragment kodu pokazuje, jak w aplikacji można wyświetlać domyślną wartość interfejsu Osiągnięcie. We fragmencie kodu RC_ACHIEVEMENT_UI jest dowolnym elementem 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);
        }
      });
}

Przykład domyślnego interfejsu osiągnięć znajdziesz poniżej.