Решите, кто является первым и вторым игроком в раундовой игре с помощью Google Play Game Services
У меня есть многопользовательская многопользовательская игра для Android, которая раньше работала на XMPP, и я хочу перейти на Google Play Game Services. В старой версии был бот XMPP, решавший, кто из игроков будет игроком 1 или 2. Важно знать, какой игрок должен сделать первый ход.
С Google Play Game Services я нашел решение, которое почти работает:
@Override
public void onRoomConnected(int statusCode, Room room) {
ArrayList participants = room.getParticipants();
Participant first = participants.get(0);
if (first.getPlayer() == null || !first.getPlayer().getPlayerId().equals(myPlayerId)) {
LaskaField.HUMAN_PLAYER = 2;
LaskaField.OTHER_PLAYER = 1;
opponent = first.getDisplayName();
} else {
LaskaField.HUMAN_PLAYER = 1;
LaskaField.OTHER_PLAYER = 2;
opponent = participants.get(1).getDisplayName();
}
setPlayerNames();
}
Этот способ отлично работает при приглашении другого игрока. Тем не менее, часто происходит сбой, когда оба игрока выбирают автоматическое соответствие. В этом случае оба игрока находятся на одной позиции в ArrayList участников. Следовательно, они оба будут отображаться как один и тот же плеер на используемом в данный момент устройстве.
Как правильно выбрать игрока 1 и 2, без централизованного решения для этого? Есть ли в списке участников полезные данные, которые я не сделал?найти с помощью отладчика?