2014-04-23 5 views
8

Obecnie robię grę zintegrowaną z usługą Google Play Play i chcę uzyskać kompresję między wynikiem a najlepszym wynikiem, więc łatwo informuję gracza, że ​​uzyskują nowy wysoki wynik. Ale nie wiem, jak zdobyć wynik z rankingu usług gier Google, czy ktokolwiek może mi doradzić, jak to zrobić?Jak zdobyć wynik z rankingu usługi Google Play dla danego gracza?

Jestem w stanie wyświetlić tabelę wyników, ale nie mogę znaleźć sposobu na zdobycie punktów dla gracza.

mój kod, który pokazuje liderów:

if (isSignedIn()) 
    { 
     if(inScore<=50) 
     { 
      Games.Leaderboards.submitScore(getApiClient(), getString(R.string.leaderboard_easy), inScore); 
     } 
     else 
     { 
      Games.Leaderboards.submitScore(getApiClient(), getString(R.string.leaderboard_hard), inScore); 
     } 
    } else { 
     Log.d("not signed", "Not signed in"); 
    } 

Chcę uzyskać wynik od użytkownika, które grają na swoim urządzeniu, pomóż mi proszę.

Odpowiedz

11

To jak ja ściągam wynik bieżącego gracza:

private void loadScoreOfLeaderBoard() { 
    Games.Leaderboards.loadCurrentPlayerLeaderboardScore(getApiClient(), getString(R.string.your_leaderboard_id), LeaderboardVariant.TIME_SPAN_ALL_TIME, LeaderboardVariant.COLLECTION_PUBLIC).setResultCallback(new ResultCallback<Leaderboards.LoadPlayerScoreResult>() { 
     @Override 
     public void onResult(final Leaderboards.LoadPlayerScoreResult scoreResult) { 
      if (isScoreResultValid(scoreResult)) { 
       // here you can get the score like this 
       mPoints = scoreResult.getScore().getRawScore(); 
      } 
     } 
    }); 
} 

private boolean isScoreResultValid(final Leaderboards.LoadPlayerScoreResult scoreResult) { 
    return scoreResult != null && GamesStatusCodes.STATUS_OK == scoreResult.getStatus().getStatusCode() && scoreResult.getScore() != null; 
} 
0

nie mogłem dotrzeć do wewnątrz programu onResult przechodzącej bezpośrednio. Po przesłaniu wewnątrz funkcji onActivityResult dzwonię. Czy to źle, że wzywam onActivityResult.

Games.Leaderboards.submitScore(googleApiConnection.mGoogleApiClient, String.valueOf(R.string.leaderboard_winner), Long.valueOf(120)); 

Games.Leaderboards.loadCurrentPlayerLeaderboardScore(getApiClient(), getString(R.string.leaderboard_winner), LeaderboardVariant.TIME_SPAN_ALL_TIME, LeaderboardVariant.COLLECTION_PUBLIC).setResultCallback(new ResultCallback<Leaderboards.LoadPlayerScoreResult>() { 
        @Override 
        public void onResult(final Leaderboards.LoadPlayerScoreResult scoreResult) { 
         // if (isScoreResultValid(scoreResult)) { 
         LeaderboardScore c = scoreResult.getScore(); 
         // here you can get the score like this 
         // Log.e("doganay","LeaderBoardLoadSCore :"+c.getDisplayScore()); 
         //us.setCoin(60); 
         mPoints = c.getRawScore(); 



        } 
       });