所以我正在用Eclipse编写一个Java游戏,使用Google Play游戏服务来处理我的成就。我已完成sample games provided by Google中的所有操作,但我将GameHelper直接添加到现有活动而不是使用BaseGameActivity。现在我有一个问题。如果玩家使用一台设备解锁实际影响游戏的成就,我该如何让其他设备发现解锁成就?
通过一些浏览,我发现我应该使用mHelper.getGamesClient().loadAchievements(OnAchievementsLoadedListener listener)
,然后使用onAchievementsLoaded (int statusCode, AchievementBuffer buffer)
监听器。 AchievementBuffer buffer
似乎包含all the data I want。
现在的问题是我不知道如何使用这个监听器。我应该把它放在哪里,我应该拨打loadAchievements()
还是在登录时自动呼叫
如果有人可以帮助我,那将会很棒:)
答案 0 :(得分:3)
实际上,Achievement缓冲区将包含您想要的所有数据(如果statusCode返回的是 STATUS_OK )。您可以通过以下方式从您的活动(按示例扩展BaseGameActivity)“按需”加载成就:
getGamesClient().loadAchievements(new OnAchievementsLoadedListener() {
@Override
public void onAchievementsLoaded(int statusCode, AchievementBuffer buffer) {
if (statusCode == GamesClient.STATUS_OK) {
int achievementsCount = buffer.getCount();
[...]
}
buffer.close();
}
});
不要忘记关闭缓冲区。