2015-10-18 86 views
2

我正在通過Game Center開發多人遊戲。遊戲中心特定的配對

所以我有玩家不同的羣體(某種部族)。所有的比賽都需要2名球員。我如何才能爲不同團體的球員進行配對?

如:

Clan 1 + Clan 2 = true;

Clan 5 + Clan 5 = false;

Clan 5 + Clan 6 = true;

我知道有一個playerGroup屬性,但它執行完全相反的事:(

回答

2

playerAttributes財產該匹配請求應該能夠t o做你想做的事。這是一個32位的掩碼,當設置爲非零值時,如果玩家完成掩碼(或一起)到0xFFFFFFFF,玩家將只能自動匹配遊戲。請參閱an example

然而,問題是你表明你有很多比球員更氏族。如果你有6並將其定義爲:

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

隨後的只有兩個球員或運算組合永遠不會完全達到0xFFFFFFFF的。我認爲你可以通過反轉掩碼來做你想做的事情,然後用0而不是1來定義你想要的角色。

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

這些來自不同氏族OR的任何兩個或一起爲0xFFFFFFFF。所以,遊戲中心願意(這總是一個不確定的命題),來自不同部族的任何兩個玩家應該匹配;然而,來自同一家族的兩名選手不應該這樣做。

注:我可能說明明顯位置,但請注意,你可以有多達32周不同的部族,如果你在二進制定義它們,而不是十六進制,因此用一位爲每個戰隊。爲了便於閱讀,我只使用十六進制數字。

+0

您的選擇是正確的,但不知何故遊戲中心沒有這樣的球員內啓動屬性匹配 – demon9733

+0

你在做實時匹配或基於回合的比賽? – Thunk

+0

這是一個實時比賽。我發現這個: 'FFFF0000 | 0000FFFF =正常工作' 'FFF00000 | 000FFFFF =正常工作' 'FFF00000 | 00FFFFFF =不起作用# 'WHATEVER | FFFFFFFF =正常工作# – demon9733