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 można znaleźć w pakietach com.google.android.gms.games
i com.google.android.gms.games.leaderboards
.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobiono, warto zapoznać się z pojęciami dotyczącymi gier z tablicami wyników.
Zanim zaczniesz pisać kod z użyciem interfejsów API tablic wyników:
Postępuj zgodnie z instrukcjami instalowania i konfigurowania aplikacji, aby korzystać z usług gier Google Play, które znajdziesz w przewodniku Konfigurowanie pakietu SDK usług Google Play.
Zdefiniuj tabele wyników, które mają być wyświetlane lub aktualizowane w Twojej grze, postępując zgodnie z instrukcjami w przewodniku po Konsoli Google Play.
Pobierz i przejrzyj przykłady kodu tablic wyników na stronie z przykładami na Androida w GitHubie.
Zapoznaj się z rekomendacjami opisanymi w liście kontrolnej jakości.
Pobieranie klienta tabeli wyników
Aby zacząć korzystać z interfejsu API tabel wyników, gra musi najpierw uzyskać obiekt LeaderboardsClient
.
Możesz to zrobić, wywołując metodę PlayGames.getLeadeboardsClient()
i przekazując aktywność.
Aktualizowanie wyniku gracza
Gdy wynik gracza się zmieni (np. po zakończeniu gry), gra może zaktualizować jego wynik w tabeli wyników, wywołując LeaderboardsClient.submitScore()
i przekazując identyfikator tabeli wyników oraz wartość surowego wyniku.
Poniższy fragment kodu pokazuje, jak aplikacja może zaktualizować wynik gracza:
PlayGames.getLeaderboardsClient(this) .submitScore(getString(R.string.leaderboard_id), 1337);
Dobrym rozwiązaniem jest zdefiniowanie identyfikatora tabeli wyników w pliku strings.xml
, aby gra mogła odwoływać się do tabel wyników za pomocą identyfikatora zasobu. Podczas wywoływania funkcji aktualizowania i wczytywania wyników graczy postępuj zgodnie z tymi sprawdzonymi metodami, aby uniknąć przekroczenia limitu interfejsu API.
Wyświetlanie tabeli wyników
Aby wyświetlić tabelę wyników, wywołaj funkcję LeaderboardsClient.getLeaderboardIntent()
, aby uzyskać Intent
i utworzyć domyślny interfejs użytkownika tabeli wyników. Gra może wtedy wyświetlić interfejs, wywołując funkcję startActivityForResult
.
Poniższy fragment kodu pokazuje, jak aplikacja może zaktualizować wynik gracza. We fragmencie kodu RC_LEADERBOARD_UI
to dowolna liczba całkowita oznaczająca kod żą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); } }); }
Nawet jeśli nie jest zwracany żaden wynik, musisz użyć startActivityForResult
, aby interfejs API mógł uzyskać tożsamość pakietu wywołującego. Poniżej znajdziesz przykład domyślnego interfejsu tablicy wyników.
