2013-06-30 2 views
1

Итак, я пишу Java-игру с Eclipse, которая использует Google Play Game Services для обработки моих достижений. Я сделал все как в sample games provided by Google, за исключением того, что я добавил GameHelper непосредственно в свою существующую деятельность вместо использования BaseGameActivity. Теперь у меня проблема. Если игрок использует одно устройство для разблокировки достижения, которое действительно влияет на игру, как я могу заставить другое устройство разблокировать достижение?Google Play Game Services достижение loading

С небольшим количеством просмотров я выяснил, что должен использовать mHelper.getGamesClient().loadAchievements(OnAchievementsLoadedListener listener), а затем использовать этот прослушиватель onAchievementsLoaded (int statusCode, AchievementBuffer buffer). AchievementBuffer buffer, кажется, содержит all the data I want.

Теперь проблема в том, что я понятия не имею, как использовать этот слушатель. Где я должен поставить его, я должен позвонить loadAchievements() или она автоматически вызывается знаком и т.д.

Было бы замечательно, если бы кто-то может помочь мне с этим :)

ответ

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

И не забудьте закрыть буфер.

+0

Я уже успел сделать это по-другому и собирался ответить на этот вопрос сам, но ваш ответ намного проще, чем мой. Спасибо за добавление проверки статуса и закрытия буфера, хотя я уже знал об этом :) – Finnboy11