我希望在我的回合制游戏中有一个“快速匹配”模式,玩家会自动与第一个可用的玩家匹配。我正在使用我自己的自定义 UI。到目前为止,我的代码如下所示:
- (void)quickMatch {
GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = 2;
request.maxPlayers = 2;
request.playersToInvite = nil;
[GKTurnBasedMatch findMatchForRequest:request withCompletionHandler:^(GKTurnBasedMatch *match, NSError *error) {
NSLog(@"MATCH: %@ %@ %@ %d",error,match,match.matchID,(int)match.status);
}];
这成功创建了匹配,但匹配中的第二个参与者有一个null
ID ( playerID:(null) status:Matching
)。
我认为如果我在另一个实例上运行相同的代码,使用不同的 Game Center ID,那么这两个用户将相互匹配......但这似乎不正确。每当我调用该GKTurnBasedMatch loadMatchesWithCompletionHandler
函数时,我都会继续检索相同的匹配项,每个匹配项只有 1 个有效参与者(本地玩家)。
这个问题似乎类似于iOS Development: How do I auto match player in Game Center? 这确实表明设置request.playersToInvite = nil;
应该完成自动匹配,但这似乎对我不起作用。
如何让 Game Center 自动匹配这些玩家?