ios - 游戏中心 : Player Groups

标签 ios swift xcode gamekit

我正在为 iOS 开发一款游戏。我需要开始过滤比赛,以便人们正确配对。我正在阅读有关玩家属性和玩家组的信息,并且由于我的游戏的性质,PlayerGroups 是必经之路。
正如我在 Apple 文档中阅读的那样,他们提供了这个示例:

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

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

A constant for each is chosen and the two are bitwise ORed together to create a unique number for the player group. Game Center only searches for other players with the same map and group combination.

这很含糊,我不确定是我做的常数还是他们做的还是谁做的?而且我不确定最后是否有 typO,它们的意思是 map 和 rules 而不是 map 和 group(举个例子)。此外,如果它们是 OR'ed,则匹配将是森林 map 中的 EITHER 或捕获公寓,但不是两者,如果设置这些参数,我假设你需要两者。

无论如何,有没有人知道更多这方面的信息并能为我提供更好的示例或更好地解释如何使用 PlayerGroups?谢谢!

最佳答案

apple 说的是组可以是Bit field .只有对组具有相同值的玩家才会匹配在一起。

至于为什么要用OR运算符,只是一般用于位域。从技术上讲,您可以在那里使用 +

假设示例中的开发人员决定将最低有效字节用于 map ,将次低字节用于游戏模式,那么该组将是:

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

可以看到结果中包含了使用哪个 map 和玩哪种模式的信息。

关于ios - 游戏中心 : Player Groups,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48743257/

相关文章:

ios - UITableView 页脚和页眉背景颜色比指定暗

ios - 如何从 CustomCell 重置 tableview 中的所有开关

ios - CGBitmapContextCreate 无效数据字节/行

ios - 在 Objective C/Swift 中,抛出错误时在方法中返回什么?

swift - awakeFromNimb 不会在 TableView reloadData Swift 上被调用

ios - Objective C View Controller 属性未保存

ios - 如何将按钮设置到导航的最右侧 - iOS

iphone - 在 Objective C 中运行 AJAX 代码

ios - 当导航 Controller [SWIFT 3] 将 tableview 设为 root 时,它在 ViewController 中似乎为 nil

swift - 如何在两个 View Controller 之间传递(变化的)变量?