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:
Postępuj zgodnie z instrukcjami instalowania i konfigurowania aplikacji, by korzystać z usług gier Google Play, zgodnie z instrukcjami konfigurowania pakietu SDK usług Google Play.
Określ osiągnięcia, które chcesz odblokować lub wyświetlać w grze, postępując zgodnie z instrukcjami podanymi w przewodniku po Konsoli Google Play.
Przykładowy kod osiągnięć możesz pobrać i przejrzeć stronę z przykładami na Androida.
Zapoznaj się z rekomendacjami opisanymi na liście kontrolnej jakości.
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ęć.