使用位掩码自动匹配Android开发中的玩家

时间:2013-08-24 13:49:24

标签: android criteria multiplayer bitmask

我正在尝试根据他们选择的标准自动匹配玩家。为简单起见,玩家可以被评为1,2或3级。如果玩家是3级并且只想玩其他3级对手,那怎么办呢?我从Google的教程和参考资料中逐页阅读。它声明可以使用位掩码来设置标准。在我的试验中,我只能匹配玩家,当他们的位掩码是彼此的2补充时,如Google的文档中所述。

exclusiveBitMask - 自动匹配请求的独占位掩码。每个自动匹配请求配对的逻辑AND必须等于零以进行自动匹配。如果游戏没有排他性要求,则此值应设置为0。

因此,如果两个玩家具有相同的位掩码(即相同的标准),则它们将不匹配。解决办法是什么?如果它们基于2的补码匹配,我该如何实现?谁得到了“常规”位掩码,谁得到了补充?我不明白。

我可以为用户提供创建游戏的选项:

我的水平----愿意与之抗衡的水平

1 1 0 ---- 1 1 0(零表示是,所以我的等级== 1并且只愿意玩1级)

除了找到游戏的选项外:

对抗水平----我的等级

0 0 1 ---- 0 0 1(与1级比赛,我是1级)

这很好,但随后QuickGame被拍摄,因为......

1)同一级别的两个人将无法匹配:

0 0 0 ---- 0 0 1和0 0 0 ---- 0 0 1(没有比赛,1级并且愿意扮演任何人)

2)或者如果QuickGame全部为零,他们将匹配想要仅在3级玩的人,如:

0 0 0 ---- 0 0 0和0 1 1 ---- 0 1 1(QuickGame玩任何人,并且只对3级创建游戏等级3是匹配,这是不对的)

解决方案是什么?

1 个答案:

答案 0 :(得分:2)

有机会public RoomConfig.Builder setVariant (int variant)
使用setVariant,您可以为不同的玩家级别创建房间。