В этом руководстве показано, как использовать API таблиц лидеров в приложении для Android для создания визуальных таблиц лидеров, записи результатов игроков и сравнения их с результатами игроков из предыдущих игровых сессий. API находятся в пакетах com.google.android.gms.games
и com.google.android.gms.games.leaderboards
.
Прежде чем начать
Если вы еще этого не сделали, возможно, вам будет полезно ознакомиться с концепциями игровых таблиц лидеров .
Прежде чем начать писать код с использованием API таблиц лидеров:
Следуйте инструкциям по установке и настройке приложения для использования игровых сервисов Google Play, приведенным в руководстве Настройка SDK сервисов Google Play .
Определите таблицы лидеров, которые вы хотите отображать или обновлять в своей игре, следуя инструкциям в руководстве по Google Play Console .
Загрузите и просмотрите примеры кода таблиц лидеров на странице примеров Android на GiHub.
Ознакомьтесь с рекомендациями, описанными в Контрольном списке качества .
Получить клиент таблицы лидеров
Чтобы начать использовать API таблиц лидеров, ваша игра должна сначала получить объект LeaderboardsClient
. Это можно сделать, вызвав метод PlayGames.getLeadeboardsClient()
и передав ему Activity.
Обновить счет игрока
Когда счет игрока изменяется (например, когда игрок заканчивает игру), ваша игра может обновить его счет в таблице лидеров, вызвав LeaderboardsClient.submitScore()
и передав идентификатор таблицы лидеров и исходное значение счета.
Следующий фрагмент кода показывает, как ваше приложение может обновить счет игрока:
PlayGames.getLeaderboardsClient(this) .submitScore(getString(R.string.leaderboard_id), 1337);
Рекомендуется указать идентификатор таблицы лидеров в файле strings.xml
, чтобы ваша игра могла ссылаться на неё по идентификатору ресурса. При выполнении вызовов для обновления и загрузки результатов игроков также следуйте этим рекомендациям , чтобы не превысить квоту API.
Отобразить таблицу лидеров
Чтобы отобразить таблицу лидеров, вызовите LeaderboardsClient.getLeaderboardIntent()
, чтобы получить Intent
для создания пользовательского интерфейса таблицы лидеров по умолчанию. После этого игра сможет открыть этот интерфейс, вызвав startActivityForResult
.
Следующий фрагмент кода показывает, как ваше приложение может обновить счёт игрока. В нём RC_LEADERBOARD_UI
— это произвольное целое число для кода запроса.
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); } }); }
Даже если результат не возвращается, необходимо использовать startActivityForResult
, чтобы API мог получить идентификатор вызывающего пакета. Пример интерфейса таблицы лидеров по умолчанию показан ниже.
