【问题标题】:Google Play Games - Is it possible to get the experience points of the User filtered only for my game?Google Play 游戏 - 是否可以仅针对我的游戏过滤用户的经验值?
【发布时间】:2016-05-30 15:13:29
【问题描述】:

我有一个使用 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);
}

【问题讨论】:

  • 你知道为什么会得到 0 吗?

标签: android google-play google-play-games


【解决方案1】:

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

getXpValue

  • 解锁此成就给予玩家的经验值。

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

本指南向您展示如何在 Android 应用程序中使用成就 API 来解锁和显示游戏中的成就。

Displaying achievements

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-03
    • 2015-06-09
    • 2020-06-17
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    相关资源
    最近更新 更多