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.games
i com.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ęć:
Aby zainstalować i skonfigurować aplikację do korzystania z usług gier Google Play, wykonaj instrukcje podane w przewodniku Konfigurowanie pakietu SDK Usług Google Play.
Określ osiągnięcia, które mają być odblokowywane lub wyświetlane w grze, wykonując instrukcje podane w przewodniku po Konsoli Google Play.
Pobierz i przejrzyj przykłady kodu osiągnięć na stronie z przykładami kodu na Androida.
Zapoznaj się z rekomendacjami opisanymi w kontrolnej liście jakości.
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ęć.