W tym przewodniku pokazujemy, jak używać interfejsów API tabel wyników w aplikacji na Androida do tworzenia wizualnych tabel wyników, rejestrowania wyników graczy i porównywania ich z wynikami gracza z poprzednich sesji. Interfejsy API można znaleźć w pakietach com.google.android.gms.games
i com.google.android.gms.games.leaderboards
.
Zanim zaczniesz
Warto zapoznać się z pomysłami na gry z tabelą wyników.
Zanim zaczniesz tworzyć kod z wykorzystaniem interfejsów API tabel wyników:
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 tabele wyników, które chcesz wyświetlać lub aktualizować w grze, postępując zgodnie z instrukcjami podanymi w przewodniku po Konsoli Google Play.
Możesz pobrać i przejrzeć przykładowy kod tabel wyników ze strony z przykładami na Androida w GiHub.
Zapoznaj się z rekomendacjami opisanymi na liście kontrolnej jakości.
Pobierz klienta tabel wyników
Aby zacząć korzystać z interfejsu leaderboards API, Twoja gra musi najpierw uzyskać obiekt LeaderboardsClient
.
Możesz to zrobić, wywołując metodę Games.getLeadeboardsClient()
i przekazując aktywność.
Zaktualizuj wynik gracza
Gdy wynik gracza się zmieni (np. gdy zakończy grę), Twoja gra może zaktualizować jego wynik w tabeli wyników. W tym celu wywołaj LeaderboardsClient.submitScore()
i przekażesz identyfikator tabeli wyników oraz nieprzetworzoną wartość wyniku.
Ten fragment kodu pokazuje, jak aplikacja może aktualizować wynik gracza:
PlayGames.getLeaderboardsClient(this) .submitScore(getString(R.string.leaderboard_id), 1337);
Warto zdefiniować identyfikator tabeli wyników w pliku strings.xml
, aby gra mogła odwoływać się do tabel według identyfikatora zasobu. Podczas wywoływania aktualizacji i wczytywania wyników graczy pamiętaj o przestrzeganiu tych sprawdzonych metod, aby nie przekroczyć limitu interfejsu API.
Wyświetlanie tabeli wyników
Aby wyświetlić tabelę wyników, wywołaj LeaderboardsClient.getLeaderboardIntent()
, aby uzyskać Intent
i utworzyć domyślny interfejs tablicy wyników. Interfejs może zostać wyświetlony przez grę, wywołując metodę startActivityForResult
.
Ten fragment kodu pokazuje, jak aplikacja może aktualizować wynik gracza. We fragmencie kodu RC_LEADERBOARD_UI
jest dowolną liczbą całkowitą w kodzie żą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 zostanie zwrócony ż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 użytkownika.