我正在实现一个自定义匹配器视图控制器,并使用GKMatchmaker以编程方式查找两个玩家的匹配:
[[GKMatchmaker sharedMatchmaker] findMatchForRequest:request withCompletionHandler:^(GKMatch *thisMatch, NSError *error)
我的自定义媒人视图控制器有一个按钮,允许玩家通过[[GKMatchmaker sharedMatchmaker]取消]取消匹配。
当玩家1取消比赛时,有时已经使用玩家2创建了GKMatch。如何通知玩家2玩家1已取消比赛并开始搜索另一场比赛?
我想答案可能在于GKMatchmakerViewController类和调用委托方法matchmakerViewControllerWasCancelled之前的代码。有谁知道我怎么能得到这个?
答案 0 :(得分:1)
在玩完这个之后,我意识到当玩家在创建GKMatch之后但在玩家连接之前取消匹配时,以下函数中的GKPlayerStateDisconnected需要很长时间才能被调用:
- (void)match:(GKMatch *)theMatch player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state
如果创建了GKMatch但玩家没有连接,我可以在~15秒后再次调用findMatchForRequest函数来解决这个问题。
有兴趣知道人们是否有更优雅的解决方案。