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。
- 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);
我有一个应用程序,我在其中使用 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。
- 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 anIntent
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);