Z tego przewodnika dowiesz się, jak używać interfejsów API tabel wyników w aplikacji na Androida, aby tworzyć wizualne tabele wyników, rejestrować wyniki graczy i porównywać je z wynikami z poprzednich sesji gry. Interfejsy API znajdują się w pakietach com.google.android.gms.games i com.google.android.gms.games.leaderboards.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobisz, warto zapoznać się z koncepcjami dotyczącymi tabel liderów w grach.
Zanim zaczniesz kodować przy użyciu interfejsów API tablic wyników:
Aby móc korzystać z usług gier Google Play, postępuj zgodnie z instrukcjami instalacji i konfigurowania aplikacji podanymi w przewodniku Konfigurowanie pakietu SDK Usług Google Play.
Określ tabele wyników, które mają być wyświetlane lub aktualizowane przez grę, wykonując instrukcje podane w przewodniku po Konsoli Google Play.
Pobierz i przejrzyj przykłady kodu związanych z tablicami wyników na stronie z przykładami kodu na Androida w GitHub.
Zapoznaj się z rekomendacjami opisanymi w kontrolnej liście jakości.
Pobieranie klienta tabel wyników
Aby zacząć korzystać z interfejsu API tabel wyników, gra musi najpierw uzyskać obiekt LeaderboardsClient.
Aby to zrobić, wywołaj metodę PlayGames.getLeadeboardsClient()
i podaj w niej aktywność.
Zmień wynik gracza
Gdy wynik gracza ulegnie zmianie (np. gdy ukończy on grę), gra może zaktualizować jego wynik na tablicy wyników, wywołując funkcję LeaderboardsClient.submitScore(), przekazując identyfikator tablicy wyników i wartość surowego wyniku.
Ten fragment kodu pokazuje, jak aplikacja może zaktualizować wynik gracza:
PlayGames.getLeaderboardsClient(this)
.submitScore(getString(R.string.leaderboard_id), 1337);Dobrą praktyką jest zdefiniowanie identyfikatora tabeli wyników w pliku strings.xml, aby gra mogła się do niej odwoływać za pomocą identyfikatora zasobu. Podczas wykonywania wywołań w celu aktualizowania i wczytywania wyników graczy pamiętaj też o tych sprawdzonych metodach, aby nie przekroczyć limitu interfejsu API.
Wyświetlanie tabeli wyników
Aby wyświetlić tabelę wyników, wywołaj funkcję LeaderboardsClient.getLeaderboardIntent(), aby uzyskać Intent, która służy do utworzenia domyślnego interfejsu tabeli wyników. Gra może wywołać interfejs użytkownika, wywołując funkcję startActivityForResult.
Ten fragment kodu pokazuje, jak aplikacja może zaktualizować wynik gracza. W fragmencie kodu RC_LEADERBOARD_UI jest dowolną liczbą całkowitą dla kodu żądania.
private static final int RC_LEADERBOARD_UI = 9004; private void showLeaderboard() { PlayGames.getLeaderboardsClient(this) .getLeaderboardIntent(getString(R.string.leaderboard_id)) .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_LEADERBOARD_UI); } }); }
Mimo że nie zwraca żadnych wyników, musisz użyć parametru startActivityForResult, aby interfejs API mógł uzyskać tożsamość wywołującego pakietu. Poniżej znajdziesz przykład domyślnego interfejsu tabeli wyników.