GameCenter:玩家组

时间:2018-02-12 09:36:25

标签: ios swift xcode gamekit

我正在为iOS开发游戏。我需要开始过滤匹配,以便人们正确配对。我正在阅读有关玩家属性和玩家群体的信息,由于我的游戏性质,玩家群体是最佳选择 在我阅读Apple文档时,他们提供了这个示例:

GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = 2;
request.maxPlayers = 4;
request.playerGroup = MyMap_Forest | MyRulesCaptureTheFlag;

现在,我完全确定缺少一些部分,但我的主要问题是:
什么是| (垂直线)。玩家组是阵列吗?或者它是什么?阅读他们的文档,它说它是一个无符号的32位整数,如何转换成由垂直线分隔的2个不同的值? 此外,Apple说:

  

选择每个常量,并将两者按位进行或运算   为玩家组创建一个唯一的号码。游戏中心只搜索   对于具有相同地图和组合组合的其他玩家。

这是非常模糊的,我不确定我是否制作常数,或者他们是否制作它或是谁制作它?而且我不确定最后是否有一个版本,它们意味着地图和规则而不是地图和组(给出示例)。此外,如果它们是OR,则匹配将在森林地图中为EITHER或捕获平面,但不是两者,并且我假设如果您设置这些参数则需要两者。

无论如何,有没有人对此有更多的了解,可以为我提供一个更好的例子或更好地解释如何使用PlayerGroups?谢谢!

1 个答案:

答案 0 :(得分:1)

苹果所说的是该群体可以是Bit field。只有具有相同价值的玩家才会被匹配。

至于为什么在那里使用OR运算符,它通常只用于位字段。从技术上讲,您可以在那里使用+

假设示例中的开发人员决定使用最不重要的字节用于地图,而第二个用于游戏模式,则该组将是:

   MyMap_Forest          00000000 00000000 00000000 00001001
OR MyRulesCaptureTheFlag 00000000 00000000 00000011 00000000
------------------------------------------------------------
                         00000000 00000000 00000011 00001001

您可以看到结果中包含要使用的地图和要播放的模式的信息。