游戏中心特定的配对

问题描述 投票:2回答:1

我正在通过游戏中心开发多人游戏。

所以我有不同组的球员(某些部落)。所有比赛只需2名球员。我怎样才能为不同群体的玩家进行配对?

Ef。:

Clan 1 + Clan 2 = true;

Clan 5 + Clan 5 = false;

Clan 5 + Clan 6 = true;

我知道有一个playerGroup属性,但它执行完全相反的事情:(

objective-c game-center multiplayer
1个回答
2
投票

匹配请求的playerAttributes属性应该能够做你想要的。这是一个32位的掩码,当设置为非零值时,玩家只有在完成掩码(OR'd在一起)到0xFFFFFFFF时才会自动匹配到游戏中。在这里查看an example

但是,问题是你表明你有更多的部落而不是玩家。如果你有6并将它们定义为:

#define CLAN1 0xFF00000F
#define CLAN2 0xFF0000F0
#define CLAN3 0xFF000F00
#define CLAN4 0xFF00F000
#define CLAN5 0xFF0F0000
#define CLAN6 0xFFF00000

然后只有两个玩家的OR组合永远不会完全达到0xFFFFFFFF。我认为你可以通过反转蒙版来做你想做的事情,并使用0而不是1来定义你想要的角色。

#define CLAN1 0xFFFFFFF0
#define CLAN2 0xFFFFFF0F
#define CLAN3 0xFFFFF0FF
#define CLAN4 0xFFFF0FFF
#define CLAN5 0xFFF0FFFF
#define CLAN6 0xFF0FFFFF

来自不同部族的任何两个OR一起作为0xFFFFFFFF。所以,游戏中心愿意(这总是一个不确定的命题),来自不同部族的任何两个玩家都应该匹配;但是,来自同一个战队的两名球员不应该。

注意:我可能在这里说明显而易见的,但请注意,如果用二进制而不是十六进制定义它们,最多可以有32个不同的部落,因此每个部族使用一个位。我这里只使用十六进制数字以便于阅读。

© www.soinside.com 2019 - 2024. All rights reserved.