我在游戏中有一些增量成就,我想检查其中一个是否已经解锁。我怎么能这样做?
原来我用过这种方法:
getGamesClient().incrementAchievement(achievement, increment);
然后我试着用这个:
mHelper.getGamesClient().incrementAchievementImmediate(new OnAchievementUpdatedListener()
{
@Override
public void onAchievementUpdated(int statusCode, String achievementId)
{
// TODO: Check if the achievement got unlocked
}
}, achievement, increment);
这是做我想要的正确方法吗?还有更好的方法吗?
我的测试中只有两个statusCode值。
值:5 = STATUS_NETWORK_ERROR_OPERATION_DEFERRED
值:0 = STATUS_OK
有人可以帮我这个吗?
由于
答案 0 :(得分:9)
class AchievementClass implements ResultCallback<Achievements.LoadAchievementsResult> {
@Override
public void onResult(LoadAchievementsResult arg0) {
Achievement ach;
AchievementBuffer aBuffer = arg0.getAchievements();
Iterator<Achievement> aIterator = aBuffer.iterator();
while (aIterator.hasNext()) {
ach = aIterator.next();
if ("The Achievement Id you are checking".equals(ach.getAchievementId())) {
if (ach.getState() == Achievement.STATE_UNLOCKED) {
// it is unlocked
} else {
//it is not unlocked
}
aBuffer.close();
break;
}
}
}
}
Games.Achievements.load(ApiClient, false).setResultCallback(new AchievementClass());
这将获得当前登录的玩家的成就数据,完成所有成就,当它达到您所关注的成就时,它将检查它是否已解锁。