所以,我正在编写基于Google服务(实时多人游戏)的实时多人游戏。我想为自动匹配标准添加不同的角色。在谷歌文档中它看起来像这样:
如果您的游戏具有多个玩家角色(例如农夫,弓箭手和向导)并且您想要将自动匹配的游戏限制为每个角色的一个玩家,请为您的房间配置添加独占的位掩码。当使用此选项自动匹配时,只有当其独占位掩码的逻辑AND等于0时才会考虑匹配。以下示例显示如何使用位掩码执行具有三个独占角色的自动匹配: / p>
在这个例子中,我们将等待两个具有独家角色的随机对手。
private static final long ROLE_FARMER = 0x1; // 001 in binary
private static final long ROLE_ARCHER = 0x2; // 010 in binary
private static final long ROLE_WIZARD = 0x4; // 100 in binary
private void startQuickGame(long role) {
// auto-match with two random auto-match opponents of different roles
Bundle am = RoomConfig.createAutoMatchCriteria(2, 2, role);
// build the room config
RoomConfig.Builder roomConfigBuilder = makeBasicRoomConfigBuilder();
roomConfigBuilder.setAutoMatchCriteria(am);
// create room, etc.
// ...
}
当我将exlusive角色替换为0时,它可以正常工作。但是,如果我为每个对手添加一些位掩码,例如0x1,它就不起作用。玩家无法连接到房间。我使用谷歌样本测试了这个问题实时多人游戏:https://github.com/playgameservices/android-basic-samples/tree/master/BasicSamples/ButtonClicker它也不起作用。你能帮我解决这个问题吗?我无法解决它。
答案 0 :(得分:4)
所以,我解决了我的问题。如果您想连接具有特定选项的玩家。你需要使用
roomConfigBuilder.setVariant(0x4);