1

所以我正在用 Eclipse 编写一个 java 游戏,它使用 Google Play 游戏服务来处理我的成就。我已经完成了谷歌提供的示例游戏中的所有内容中的所有操作,除了我将 GameHelper 直接添加到我现有的活动中,而不是使用 BaseGameActivity。现在我有一个问题。如果玩家使用一台设备解锁了一个实际影响游戏的成就,我怎样才能让另一台设备发现解锁的成就?

通过一些浏览,我发现我应该使用mHelper.getGamesClient().loadAchievements(OnAchievementsLoadedListener listener)然后使用那个onAchievementsLoaded (int statusCode, AchievementBuffer buffer)监听器。AchievementBuffer buffer似乎包含我想要的所有数据。

现在的问题是我不知道如何使用这个监听器。我应该把它放在哪里,我应该打电话loadAchievements()还是在登录时自动调用等等。

如果有人可以帮助我,那就太好了:)

4

1 回答 1

3

实际上,成就缓冲区将包含您想要的所有数据(如果返回的 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();
    }
});

并且不要忘记关闭缓冲区。

于 2013-07-01T11:29:13.853 回答