2016-05-30 3 views
0

Ich habe eine Anwendung, wo ich Gamification mit Google Play Games implementieren. Wenn ein Benutzer eine Leistung freigibt, muss ich wissen, wie hoch die Gesamtpunktzahl für diesen Nutzer ist, und filtere nur nach meiner App. Angenommen, meine App versucht, 10 Erfolge zu erzielen, und der Nutzer hat vier davon veröffentlicht. Wie kann ich die Gesamtpunktzahl ermitteln, die durch diese 4 vom betreffenden Nutzer veröffentlichten Leistungen erzielt wurde? Es gibt eine einfache und leichte Möglichkeit, dies zu tun?Google Play Games - Ist es möglich, die Erfahrungspunkte des Nutzers nur für mein Spiel zu filtern?

UPDATE

Nun, habe ich versucht, diesen Code, aber aways Null zurück.

public abstract class GetAchievements { 
    public void loadAchievements() { 
     PendingResult<Achievements.LoadAchievementsResult> pendingAchievements = Games.Achievements.load(mGoogleApiClient, true); 
     pendingAchievements.setResultCallback(new ResultCallback<Achievements.LoadAchievementsResult>() { 
      @Override 
      public void onResult(Achievements.LoadAchievementsResult loadAchievementsResult) { 
       Game game = Games.GamesMetadata.getCurrentGame(mGoogleApiClient); 
       extractAchievements(loadAchievementsResult, game); 
      } 
     }); 
    } 

    public void extractAchievements(Achievements.LoadAchievementsResult loadAchievementsResult, Game game) { 
     AchievementBuffer buffer = loadAchievementsResult.getAchievements(); 
     List<Achievement> achievementList = new ArrayList<>(); 
     for (int i = 0; i < game.getAchievementTotalCount(); i++) { 
      achievementList.add(buffer.get(i)); 
      Achievement a = buffer.get(i); 

      // aways return 0 
      Log.d(TAG, "XP = " + a.getXpValue()); 

     } 
     notifyAchievements(achievementList); 
    } 

    public abstract void notifyAchievements(List<Achievement> achievementList); 
} 

Antwort

1

können Sie versuchen, Achievement Klasse von com.google.android.gms.games.achievement Paket.

getXpValue

  • XP Wert zum Entriegeln diese Leistung an die Spieler gegeben.

Auch hier ist Dokument für Adding Achievements to Your Android Game:

Dieser Leitfaden zeigt Ihnen, wie Sie die Leistungen APIs in einer Android-Anwendung verwenden, um Leistungen im Spiel zu freischalten und anzuzeigen.

Displaying achievements

eines Spielers Leistungen anzuzeigen, rufen getAchievementsIntent() eine Intent zu bekommen die Standard Leistungen UI zu erstellen. Ihr Spiel kann dann die Benutzeroberfläche durch Aufruf von [startActivityForResult] (https://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)) aufrufen. Im folgenden Codefragment ist REQUEST_ACHIEVEMENTS eine beliebige ganze Zahl, die als Anforderungscode verwendet wird.

startActivityForResult(Games.Achievements.getAchievementsIntent(mGoogleApiClient), 
REQUEST_ACHIEVEMENTS); 
+0

Bitte überprüfen Sie mein Update – sThiago

Verwandte Themen