Top 5 scores from google leaderboard

前端 未结 4 472
粉色の甜心
粉色の甜心 2020-12-14 13:47

My requirement is to get top 5 scores from leaderboard and display it in my app.

There is a method loadTopScores but it shows the scores in its own UI i guess.

4条回答
  •  长情又很酷
    2020-12-14 13:59

    You are on the right track in your example, you just need to extract the information once it is loaded. It is fairly confusing to get it working but I will point you to this answer of mine, which shows how to do it for achievements - doing it for leaderboards works the same way, except that you will use the leaderboard interfaces instead of those used for achievements.

    Basically, you will access arg2 to get the data, and it should look something like this:

    mGamesClint.loadTopScores(new OnLeaderboardScoresLoadedListener() {
    
       public void onLeaderboardScoresLoaded(int arg0, LeaderboardBuffer arg1, LeaderboardScoreBuffer arg2) {
    
          // iterate through the list of returned scores for the leaderboard
          int size = arg2.getCount();
          for ( int i = 0; i < size; i++ )  {
             LeaderboardScore lbs = arg2.get( i );
    
             // access the leaderboard data
             int rank = i + 1;         // Rank/Position (#1..#2...#n)
             String name = lbs.getScoreHolderDisplayName();
             String scoreStr = lbs.getDisplayScore();
             long score = lbs.getRawScore();
    
             // now display or cache these values, or do whatever with them :)
          }
    
          arg2.close();
          arg1.close();
       }
    }, LEADERBOARD_ID,LeaderboardVariant.TIME_SPAN_ALL_TIME, LeaderboardVariant.COLLECTION_PUBLIC, 5, true);
    

    I did not actually test this implementation, but it should work (or at least show you enough so you can fix any mistakes I might have made).

    Just remember that this will be done asynchronously, so the contents of the method will not execute immediately, but rather once the scores have been loaded.

提交回复
热议问题