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

标签 android google-play google-play-games

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

更新

好吧,我试过这段代码,但总是返回零。

    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 类。

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

关于android - Google Play 游戏 - 是否可以只为我的游戏过滤用户的经验值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37528967/

相关文章:

android - 谷歌移动视觉文本 API 示例

android - 在运行时定义新的 linearLayout 时如何控制 linearLayout 的大小?

android - 保护 Apk 文件

android - 付款后取消安卓广告

android - Google 游戏登录 - 错误 12501 无效响应

android - Google Play 开发者控制台错误 : Signed APK Config Error, 成就和排行榜意外错误

android - 尝试添加 firebase ml 视觉图像标签模型时 Gradle 同步失败

android - 使用选项卡在 ActionBar 中调用 onCreateOptionsMenu 的次数太多

android - 违反用户数据政策和开发者分发协议(protocol)第 4.8 节

android - 如何确定从 Google Play 游戏回合制通知中选择的比赛