Google 玩游戏 - 是否可以只为我的游戏过滤用户的经验值?

Google Play Games - Is it possible to get the experience points of the User filtered only for my game?

我有一个应用程序,我在其中使用 Google Play Games 实现游戏化。当用户发布成就时,我需要知道该用户的总分是多少,仅通过我的应用进行过滤。例如,假设我的应用尝试获得 10 个成就,而用户已经发布了其中的 4 个。如何知道该用户发布的这4个成就所产生的总分?有一种简单轻便的方法可以做到这一点吗?

更新

好吧,我试过这个代码,但是 return 零。

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

您可以尝试使用 com.google.android.gms.games.achievement 包中的 Achievement Class。

getXpValue

  • XP value given to players for unlocking this achievement.

这里还有 Adding Achievements to Your Android Game 的文档:

This guide shows you how to use the achievements APIs in an Android application to unlock and display achievements in your game.

Displaying achievements

To show a player's achievements, call getAchievementsIntent() to get an Intent to create the default achievements UI. Your game can then bring up the UI by calling [startActivityForResult](https://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)). In the following snippet, REQUEST_ACHIEVEMENTS is an arbitrary integer used as the request code.

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