2013-06-30 97 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