2016-05-30 60 views
0

我有一个应用程序,使用Google Play游戏来实施游戏化。当用户发布成就时,我需要知道该用户的总分是多少,只能通过我的应用进行过滤。例如,假设我的应用试图获得10项成就,并且用户已经发布了其中的四项成就。如何知道用户发布的这4项成就所产生的总分?有一种简单轻便的方法可以做到这一点?Google Play游戏 - 是否可以获取仅用于我的游戏的用户经验值?

UPDATE

嗯,我想这代码,但跳投返回零。

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

回答

1

您可以尝试使用Achievement类从com.google.android.gms.games.achievement包。

getXpValue

  • XP值提供给玩家解锁这个成就。

另外这里的文档Adding Achievements to Your Android Game

本指南向您介绍如何使用成果的API在Android应用程序解锁,并显示在你的游戏成就。

Displaying achievements

要显示一个玩家的成就,呼吁getAchievementsIntent()得到一个Intent以创建默认的成就UI。通过调用[startActivityForResult](https://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent,int)),您的游戏可以调出UI。在以下代码片段中,REQUEST_ACHIEVEMENTS是用作请求代码的任意整数。

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

请检查我的更新 – sThiago

相关问题