我有一个基于 Android 的回合制多人游戏,之前一直在 XMPP 上运行,我想切换到 Google Play 游戏服务。在旧版本中,有一个 XMPP 机器人,它决定哪个玩家将成为玩家 1 或 2。知道哪个玩家应该先行动很重要。
通过 Google Play 游戏服务,我找到了一个几乎可行的解决方案:
@Override
public void onRoomConnected(int statusCode, Room room) {
ArrayList<Participant> 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 的正确方法是什么,没有中央实例来决定这一点。参与者列表中是否有我在调试器中找不到的有用数据?