只是我或者房间里的getCreatorId()方法对于自动游戏来说不是唯一的吗?
我的游戏中有一些逻辑基于决定事物的独特实体,例如哪个玩家属于哪个团队。在启动并设置游戏之前,每个客户等待从“主机”(在这种情况下是房间创建者)接收此信息。
@Override
public void onRoomConnected(int status, Room room) {
// Game Lobby is full
if (status != GamesClient.STATUS_OK) {
return;
}
this.room = room;
// Assign the players teams
if (room.getParticipantId(activity.gameHelperManager.gameHelper.getGamesClient().getCurrentPlayerId()).equals(room.getCreatorId())) {
// Some logic here
activity.androidManager.sendMessage(Data Sent Here);
activity.game.startGame(GameType.MULTIPLAYER);
}
}
另一方面:
@Override
public void onRealTimeMessageReceived(RealTimeMessage message) {
// Get Message from host about game specific properties is here
if (data.contains(Message Tag Here)) {
// Parse information
activity.game.startGame(GameType.MULTIPLAYER);
}
}
但是,在自动匹配类型游戏中,每个客户端都将自己视为onRoomConnected()方法中的主机。
是否有解决方案,或者我缺少一些基本的东西?
答案 0 :(得分:3)
不可否认,我们的文档有点误导(我正在请求修复),但是我们在设计时解释了我们的想法:-D
自动匹配真正做的是连接由不同人创建的不同房间,并将它们分成几个房间,每个人都在其中。因此,房间里不同的人可能会对房间的创建者有不同的看法。因此,使用房间的创建者来决定谁先行,通常不是一个好主意。
直接使用参与者ID也不是一个好主意(因为具有词典编码非常高的参与者ID的人会发现他们在他们玩的每一个游戏中都是最后一个)。
请参阅我对以下问题的回答,了解有关如何决定谁先行的更多想法:
How to decide who is the first player when user plays quick game?