Android — Как реализовать топ-10 лидеров с помощью переполнения стека Google Play Services

Мы разрабатываем игру с топ-10 лидеров для устройств Android и iOS.

Игра написана на C ++ с использованием cocos2d-x.

Я нашел методы для получения оценки текущего пользователя, но нет никакого способа получить оценку других пользователей или списки оценок.

Можно ли получить оценку для списка пользователей с помощью Google Play Services?

1

Решение

Другие решения

Это можно сделать с помощью ScorePage.

ScorePage — это единая структура данных, которая позволяет получить доступ к данным оценки.
Данные включают в себя идентификатор таблицы лидеров, начало, время, сбор, предыдущий
токен страницы оценки, следующий токен страницы оценки и вектор всех
оценка записей.

Методы для получения ScorePage в LeaderboardManager:

void FetchScorePage(...);
0

Вы должны получить ScorePageToken от LeaderboardManager, Функция, которую вы ищете, это:

ScorePage::ScorePageToken gpg::LeaderboardManager::ScorePageToken(
std::string const& leaderboard_id,
LeaderboardStart  start,
LeaderboardTimeSpan time_span,
LeaderboardCollection collection) const

Это позволяет вам получить токен для вас gpg::LeaderboardManager::FetchScorePage или же gpg::LeaderboardManager::FetchScorePageBlocking, Его подпись такова:

void gpg::LeaderboardManager::FetchScorePage(
ScorePage::ScorePageToken const& token,
uint32_t max_results,
FetchScorePageCallback callback)

Его использование таково:

auto token = gameServices->Leaderboards().ScorePageToken("LEADERBOARD-ID", TOP_SCORES, SOCIAL, ALL_TIME);
gameServices->Leaderboards().FetchScorePage(token, 10,
[=] (const gpg::LeaderboardManager::FetchScorePageResponse& response) {...});

Каждая страница вернет максимум 25 записей, но вы можете использовать функции NextScorePageToken а также PreviousScorePageToken перемещаться по всей таблице лидеров (в вашем случае это не обязательно, потому что вам нужны только первые 10).

0
По вопросам рекламы [email protected]