W tym przewodniku pokazujemy, jak używać interfejsów API tabel wyników w aplikacji na Androida do tworzenia wizualnych tabel wyników, rejestrowania wyniku gracza i porównywania go z wynikami z poprzednich sesji gry. Interfejsy API znajdziesz w pakietach com.google.android.gms.games
i com.google.android.gms.games.leaderboards
.
Zanim zaczniesz
Warto zapoznać się z koncepcjami dotyczącymi tabel wyników.
Zanim zaczniesz programować za pomocą interfejsów API tabel wyników:
- Postępuj zgodnie z instrukcjami instalowania i konfigurowania aplikacji, by używać usług gier Google Play z przewodnika po konfigurowaniu pakietów 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 w przewodniku po Konsoli Google Play.
- Możesz pobrać i sprawdzić przykładowe fragmenty wyników na tablicy wyników na stronie z przykładowymi tabelami w Androidzie.
- Zapoznaj się z rekomendacjami opisanymi na liście kontrolnej jakości.
Zdobywanie klientów tabel wyników
Aby zacząć korzystać z tabeli wyników, gra musi najpierw uzyskać obiekt LeaderboardsClient
.
Możesz to zrobić, wywołując metodę Games.getLeadeboardsClient()
i przekazując aktywność oraz GoogleSignInAccount
dla bieżącego gracza. Aby dowiedzieć się, jak pobrać informacje o koncie gracza, przeczytaj artykuł Logowanie się w grach na Androida.
Aktualizacja wyniku gracza
Gdy wynik gracza ulegnie zmianie (np. po jego ukończeniu), gra może zaktualizować swój wynik na tablicy wyników, wywołując metodę LeaderboardsClient.submitScore()
i przekazując identyfikator tabeli wyników oraz nieprzetworzoną wartość.
Ten fragment kodu pokazuje, jak Twoja aplikacja może aktualizować wynik gracza:
Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .submitScore(getString(R.string.leaderboard_id), 1337);
Dobrze jest zdefiniować identyfikator tabeli wyników w pliku strings.xml
, aby gra mogła odwoływać się do tabel wyników z wykorzystaniem identyfikatora zasobu. Podczas wywoływania aktualizacji i wczytywania wyników odtwarzacza pamiętaj też, aby przestrzegać tych sprawdzonych metod, aby uniknąć przekroczenia limitu interfejsu API.
Wyświetlanie tabeli wyników
Aby wyświetlić tablicę wyników, zadzwoń pod numer LeaderboardsClient.getLeaderboardIntent()
, aby uzyskać Intent
i utworzyć domyślny interfejs tablicy wyników. Gdy to zrobisz, Twoja gra może wywołać interfejs, wywołując metodę startActivityForResult
.
Fragment kodu poniżej pokazuje, jak Twoja aplikacja może aktualizować wynik gracza. We fragmencie kodu RC_LEADERBOARD_UI
jest dowolną liczbą całkowitą dla kodu żądania.
private static final int RC_LEADERBOARD_UI = 9004; private void showLeaderboard() { Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this)) .getLeaderboardIntent(getString(R.string.leaderboard_id)) .addOnSuccessListener(new OnSuccessListener<Intent>() { @Override public void onSuccess(Intent intent) { startActivityForResult(intent, RC_LEADERBOARD_UI); } }); }
Zwróć uwagę, że nawet jeśli nie został zwrócony żaden wynik, musimy użyć interfejsu startActivityForResult
, aby interfejs API mógł uzyskać tożsamość pakietu do wywołania. Poniżej znajduje się przykład domyślnego interfejsu użytkownika tablicy wyników.