Мы разрабатываем игру с топ-10 лидеров для устройств Android и iOS.
Игра написана на C ++ с использованием cocos2d-x.
Я нашел методы для получения оценки текущего пользователя, но нет никакого способа получить оценку других пользователей или списки оценок.
Можно ли получить оценку для списка пользователей с помощью Google Play Services?
Я хотел бы посмотреть на функцию loadTopScores, описанную здесь:
Это можно сделать с помощью ScorePage.
ScorePage — это единая структура данных, которая позволяет получить доступ к данным оценки.
Данные включают в себя идентификатор таблицы лидеров, начало, время, сбор, предыдущий
токен страницы оценки, следующий токен страницы оценки и вектор всех
оценка записей.
Методы для получения ScorePage в LeaderboardManager:
void FetchScorePage(...);
Вы должны получить 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).