我的应用程序有多人游戏模式,我使用以下代码查找玩家:
[GKMatch ] GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = 2;
request.maxPlayers = 4;
[[GKMatchmaker sharedMatchmaker] findMatchForRequest:request withCompletionHandler:^(GKMatch *match, NSError *error) {
if (error)
{
// Process the error.
NSLog(@"Error Match Process: %@", error);
}
else if (match != nil)
{
DuelModeController* duelModeController = (DuelModeController*)viewController;
[duelModeController updateSearchingMessageWith:@" Connecting Game..."];
}
}];
上面的代码有效。问题是找到一个播放器的速度很慢,最多可达12到15秒。为了测试它,我使用iPhone和iPad与两个不同的游戏中心帐户,都有IOS 10.2。
你会遇到这样的情况,你是如何解决这个问题的?
由于
答案 0 :(得分:0)
修正了它!我的App决斗模式涉及两名球员。但是,当从Apple获取示例代码时,我复制并粘贴了最小和最大数量的玩家。 Min设置为2,但Max设置为4.
一旦我将玩家的最大数量设置为2,找到匹配需要2-3秒而不是12到15秒。我的理论是游戏中心可能一直在等待识别第三个和第四个玩家,看到它找不到它们会在12-15秒后恢复成功。
获得的经验:在GKMatch中定义玩家数量时,只需指定所需的玩家编号,而不是更多。
Stephane