如何使用Google Play Services C ++实现排名前10的排行榜

时间:2016-03-06 18:55:09

标签: android c++ ios google-play-services leaderboard

我们正在开发一款Android和iOS设备排名前10的游戏。

游戏是使用cocos2d-x在C ++上编写的。

我找到了获取当前用户分数的方法,但没有任何方法来获取其他用户'得分或得分列表。

是否可以通过Google Play服务获取用户列表的分数?

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

可以使用ScorePage完成。

ScorePage是一种单一数据结构,允许您访问分数数据。 数据包括排行榜ID,开始,时间跨度,集合,之前 得分页面标记,下一个得分页面标记和所有向量 得分条目。

在LeaderboardManager中获取ScorePage的方法:

void FetchScorePage(...);

答案 2 :(得分:0)

您必须从ScorePageToken获取LeaderboardManager。您正在寻找的功能是:

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

它允许您获取令牌,以便将其提供给gpg::LeaderboardManager::FetchScorePagegpg::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个分数条目,但您可以使用NextScorePageTokenPreviousScorePageToken功能浏览整个排行榜(在您的情况下,它不是必需的,因为你只想要前10名。