Osiągnięcia w grach na Androida

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

Zanim zaczniesz

Jeśli jeszcze tego nie zrobiłeś, warto zapoznać się z koncepcjami dotyczącymi osiągnięć w grze.

Zanim zaczniesz kodować przy użyciu interfejsu API osiągnięć:

Pobieranie klienta osiągnięć

Aby zacząć korzystać z interfejsu API osiągnięć, gra musi najpierw uzyskać obiekt AchievementsClient. Aby to zrobić, wywołaj metodę Games.getAchievementClient(), przekazując w niej aktywność.

odblokowywać osiągnięcia,

Aby odblokować osiągnięcie, wywołaj metodę AchievementsClient.unlock(), podając 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 wieloetapowego (czyli wymaga wykonania kilku czynności), wywołaj zamiast tego funkcję AchievementsClient.increment().

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

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 automatycznie odblokowują osiągnięcie, gdy osiągnie ono wymaganą liczbę etapów.

Dobrą praktyką jest zdefiniowanie identyfikatorów osiągnięć w pliku strings.xml, aby gra mogła się do nich odwoływać za pomocą identyfikatora zasobu. Gdy wykonujesz wywołania API, aby aktualizować i wczytywać osiągnięcia, pamiętaj, aby stosować te sprawdzone metody, aby nie przekroczyć limitu interfejsu API.

Wyświetlanie osiągnięć

Aby wyświetlić osiągnięcia gracza, wywołaj funkcję AchievementsClient.getAchievementsIntent(), aby uzyskać Intent, aby utworzyć domyślny interfejs użytkownika dla osiągnięć. Gra może wyświetlić interfejs, wywołując funkcję startActivityForResult.

Ten fragment kodu pokazuje, jak aplikacja może wyświetlić domyślny interfejs użytkownika dotyczący osiągnięć. W tym 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 przedstawiamy przykład interfejsu domyślnego osiągnięć.