2013-06-30 149 views
1

所以我正在用Eclipse编写一个java游戏,它使用Google Play游戏服务来处理我的成就。我已经完成了sample games provided by Google中的所有操作,除了我已将GameHelper直接添加到现有活动而不是使用BaseGameActivity。现在我有一个问题。如果玩家使用一种设备解锁实际影响游戏的成就,我如何才能让其他设备发现解锁成就?Google Play游戏服务成就加载

通过一些浏览,我发现我应该使用mHelper.getGamesClient().loadAchievements(OnAchievementsLoadedListener listener),然后使用该onAchievementsLoaded (int statusCode, AchievementBuffer buffer)监听器。 AchievementBuffer buffer似乎包含all the data I want

现在的问题是,我不知道如何使用这个监听器。我应该在哪里把它,我应该叫loadAchievements(),或者它会自动在登录称为等

这将是巨大的,如果有人可以帮助我:)

回答

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(); 
    } 
}); 

而且不要忘记关闭缓冲。

+0

我已经设法以另一种方式做到这一点,并将自己回答这个问题,但你的答案比我的简单得多。感谢您添加状态检查和缓冲区关闭,尽管我已经知道这些:) – Finnboy11

相关问题