Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Google Play Games-是否有可能只为我的游戏过滤用户的体验点?_Android_Google Play_Google Play Games - Fatal编程技术网

Android Google Play Games-是否有可能只为我的游戏过滤用户的体验点?

Android Google Play Games-是否有可能只为我的游戏过滤用户的体验点?,android,google-play,google-play-games,Android,Google Play,Google Play Games,我有一个应用程序,我正在使用Google Play Games实现游戏化。当用户发布成就时,我需要知道该用户的总分是多少,仅通过我的应用程序过滤。例如,假设我的应用程序尝试获取10项成就,而用户发布了其中的4项。如何知道该用户发布的这4项成果的总分?有一种简单而轻巧的方法可以做到这一点吗 更新 我试过这个代码,但总是返回零 public abstract class GetAchievements { public void loadAchievements() {

我有一个应用程序,我正在使用Google Play Games实现游戏化。当用户发布成就时,我需要知道该用户的总分是多少,仅通过我的应用程序过滤。例如,假设我的应用程序尝试获取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);
}
公共抽象类{
公共事业成就(){
Pendingreult PendingAchievents=游戏.成就.加载(mGoogleApiClient,true);
PendingAchievents.setResultCallback(新的ResultCallback(){
@凌驾
public void onResult(acquisitions.loadAchipmentsResult loadAchipmentsResult){
Game Game=Games.GamesMetadata.getCurrentGame(mGoogleApiClient);
提取成就(加载成就结果、游戏);
}
});
}
公共成就(成就。加载成就结果加载成就结果,游戏){
AchievementBuffer buffer=loadAchievementsResult.GetAchievents();
列表实现列表=新建ArrayList();
对于(int i=0;i
您可以尝试使用
com.google.android.gms.games.acquisition
软件包中的
acquisition

  • 为解锁此成就而给予玩家的XP值
此外,这里还有以下文件:

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

要显示玩家的成就,请调用获取以创建默认成就UI。然后,您的游戏可以通过调用[
startActivityForResult
](,int))来打开UI。在下面的代码段中,
REQUEST\u
是用作请求代码的任意整数


你知道你为什么得到0了吗?
startActivityForResult(Games.Achievements.getAchievementsIntent(mGoogleApiClient),
REQUEST_ACHIEVEMENTS);