API игр для Android: Таблица лидеров — получить конкретный счет игрока?

РЕШЕНО

У меня есть быстрый вопрос, который я не могу найти конкретного решения. Проблема в том, что у меня есть таблица лидеров, использующая GooglePlay API. Что я хочу сделать, так это получить, каков счет игрока для отдельного и конкретного игрока.

Например, я хочу отобразить счет, который он имеет в таблице лидеров, в строке моей активности (не LeaderboardActivity) или поместить ее в верхний левый угол моей игры.

Как я могу это сделать?

Спасибо!


person chelo_c    schedule 07.08.2013    source источник
comment
Очень хороший вопрос. Проголосовал за это   -  person Snake    schedule 20.10.2013


Ответы (1)


Не знаю, почему отрицательные голоса. В любом случае, вот как я нашел решение этой проблемы:

О вашей деятельности:

if (isSignedIn()) {
    getGamesClient().loadPlayerCenteredScores(
        this,
        getResources().getString(R.string.leaderboard_id),
        LeaderboardVariant.TIME_SPAN_ALL_TIME,
        LeaderboardVariant.COLLECTION_SOCIAL,
        25,
        true
    );
}

затем на слушателе:

@Override
public void onLeaderboardScoresLoaded(int arg0, LeaderboardBuffer arg1, LeaderboardScoreBuffer arg2) {
    Iterator<LeaderboardScore> it = arg2.iterator();
    while(it.hasNext()) {
         LeaderboardScore temp = it.next();
         Log.d("debug", "player:" + temp.getScoreHolderDisplayName() + " id:" + temp.getScoreHolder().getPlayerId());
    }
}

Игрок является центральным игроком, поэтому, если вы приносите равные результаты, игрок должен быть в середине. Вы можете повторить и проверить, совпадает ли идентификатор игрока.

Ваше здоровье.

person chelo_c    schedule 08.08.2013
comment
какой класс реализовать для переопределения метода onLeaderboardScoresLoaded? Не могли бы вы мне помочь? - person Jawad Amjad; 02.06.2015