Z tego przewodnika dowiesz się, jak korzystać z interfejsów API tabel wyników w aplikacji na Androida
tworzyć wizualne tabele wyników, zapisywać wyniki i porównywać wyniki
z wynikami gracza z poprzednich sesji. Interfejsy API można znaleźć
w com.google.android.gms.games
i com.google.android.gms.games.leaderboards
pakietów.
Zanim zaczniesz
W razie potrzeby zapoznaj się z pomysły na tablice wyników.
Zanim zaczniesz pisać kod za pomocą interfejsów API tabel wyników:
Postępuj zgodnie z instrukcjami instalowania i konfigurowania aplikacji. Usługi gier Google Play w Przewodnik konfigurowania pakietu SDK Usług Google Play.
Zdefiniuj tabele wyników, które chcesz wyświetlać lub aktualizować w grze. postępując zgodnie z instrukcjami podanymi w dokumencie Przewodnik po Konsoli Google Play
Pobierz i przejrzyj przykładowy kod tabel wyników w Strona z przykładami na Androida w GiHub.
Zapoznaj się z zaleceniami opisanymi w artykule Lista kontrolna jakości.
Pobierz klienta Tablice wyników
Aby zacząć korzystać z interfejsu API tabel wyników, gra musi najpierw uzyskać obiekt LeaderboardsClient
.
Aby to zrobić, wywołaj metodę Games.getLeadeboardsClient()
i przekaż
działania.
Zaktualizuj wynik gracza
Gdy zmieni się wynik gracza (np. gdy skończy grę), Twoja
gra może zaktualizować swój wynik w tabeli wyników, dzwoniąc do: LeaderboardsClient.submitScore()
,
identyfikatora tabeli wyników i nieprzetworzonej wartości wyniku.
Ten fragment kodu pokazuje, jak aplikacja może zaktualizować wynik gracza:
PlayGames.getLeaderboardsClient(this) .submitScore(getString(R.string.leaderboard_id), 1337);
Warto zdefiniować identyfikator tabeli wyników w pliku strings.xml
,
gra może odwoływać się do tabel wyników według identyfikatora zasobu. Gdy dzwonisz do
zaktualizuj i wczytaj wyniki graczy, pamiętaj też o tych
sprawdzone metody pozwalające uniknąć przekroczenia limitu interfejsu API.
Wyświetlanie tabeli wyników
Aby wyświetlić tabelę wyników, wywołaj LeaderboardsClient.getLeaderboardIntent()
, aby uzyskać
Intent
do
utworzyć domyślny interfejs użytkownika długiego banera. Gra może następnie wywołać interfejs, wywołując
startActivityForResult
Ten fragment kodu pokazuje, jak aplikacja może zaktualizować wynik gracza. W
fragment 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 żaden wynik nie zostanie zwrócony, musisz użyć funkcji
startActivityForResult
tak aby interfejs API mógł uzyskać tożsamość pakietu wywołującego. Przykład domyślnego
Interfejs tabeli wyników widać poniżej.