Google Play 游戏服务成就加载
Posted
技术标签:
【中文标题】Google Play 游戏服务成就加载【英文标题】:Google Play Game Services achievement loading 【发布时间】:2013-06-27 20:43:00 【问题描述】:所以我正在用 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()
还是在登录时自动调用等等。
如果有人可以帮助我,那就太好了:)
【问题讨论】:
【参考方案1】:确实,成就缓冲区将包含您想要的所有数据(如果返回的 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();
);
并且不要忘记关闭缓冲区。
【讨论】:
我已经设法以另一种方式做到这一点,并打算自己回答这个问题,但你的答案比我的简单得多。感谢您也添加了状态检查和缓冲区关闭,尽管我已经知道了:)以上是关于Google Play 游戏服务成就加载的主要内容,如果未能解决你的问题,请参考以下文章