游戏中心特定的对接会
Game Center specific matchmaking
我正在通过 Game Center 开发一款多人游戏。
所以我有不同组(某种部落)的玩家。所有比赛只需要 2 名球员。如何只为不同组的玩家进行配对?
例如:
Clan 1 + Clan 2 = true;
Clan 5 + Clan 5 = false;
Clan 5 + Clan 6 = true;
我知道有一个 playerGroup
属性,但它的表现恰恰相反 :(
匹配请求的playerAttributes
属性应该可以如你所愿。这是一个 32 位掩码,当设置为非零值时,玩家只有在完成掩码(或运算)为 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
来自不同部族的任何两个或一起为 0xFFFFFFFF。因此,游戏中心愿意(这始终是一个不确定的提议),来自不同部族的任何两名玩家都应该匹配;但是,同一个战队的两个玩家不应该。
注意:我可能在这里说的很明显,但请注意,如果您以二进制而不是十六进制定义它们,则最多可以有 32 个不同的氏族,因此每个氏族使用一个位。为了便于阅读,我在这里只使用了十六进制数字。
我正在通过 Game Center 开发一款多人游戏。
所以我有不同组(某种部落)的玩家。所有比赛只需要 2 名球员。如何只为不同组的玩家进行配对?
例如:
Clan 1 + Clan 2 = true;
Clan 5 + Clan 5 = false;
Clan 5 + Clan 6 = true;
我知道有一个 playerGroup
属性,但它的表现恰恰相反 :(
匹配请求的playerAttributes
属性应该可以如你所愿。这是一个 32 位掩码,当设置为非零值时,玩家只有在完成掩码(或运算)为 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
来自不同部族的任何两个或一起为 0xFFFFFFFF。因此,游戏中心愿意(这始终是一个不确定的提议),来自不同部族的任何两名玩家都应该匹配;但是,同一个战队的两个玩家不应该。
注意:我可能在这里说的很明显,但请注意,如果您以二进制而不是十六进制定义它们,则最多可以有 32 个不同的氏族,因此每个氏族使用一个位。为了便于阅读,我在这里只使用了十六进制数字。