2014-04-23 4 views
8

Attualmente sto facendo un gioco che è integrato con il servizio di gioco di Google e voglio fare un punteggio di compressione tra il punteggio e il punteggio migliore, quindi informo facilmente il giocatore che sta ottenendo il nuovo punteggio più alto. Ma non so come ottenere da classifica dei giochi di google, qualcuno può guidarmi su come farlo?Come ottenere un punteggio dalla classifica del servizio di gioco di google del giocatore attuale?

Sono in grado di visualizzare la classifica ma non riesco a trovare il modo in cui ottenere il punteggio per la riproduzione dell'utente.

mio codice che mostrare leaderboard:

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"); 
    } 

voglio ottenere punteggio da utenti che stanno giocando sul proprio dispositivo, help me please.

risposta

11

Questo è come mi sto recupero il punteggio del giocatore di turno:

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

Io non poteva raggiungere all'interno del programma onResult passare direttamente. Dopo l'invio all'interno di onActivityResult, lo sto chiamando. È sbagliato chiamare suActivityResult.

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(); 



        } 
       });