GKMatchmaker自定义媒人viewcontroller取消

时间:2013-03-29 10:34:29

标签: ios objective-c cocos2d-iphone

我正在实现一个自定义匹配器视图控制器,并使用GKMatchmaker以编程方式查找两个玩家的匹配:

[[GKMatchmaker sharedMatchmaker] findMatchForRequest:request withCompletionHandler:^(GKMatch *thisMatch, NSError *error)

我的自定义媒人视图控制器有一个按钮,允许玩家通过[[GKMatchmaker sharedMatchmaker]取消]取消匹配。

当玩家1取消比赛时,有时已经使用玩家2创建了GKMatch。如何通知玩家2玩家1已取消比赛并开始搜索另一场比赛?

我想答案可能在于GKMatchmakerViewController类和调用委托方法matchmakerViewControllerWasCancelled之前的代码。有谁知道我怎么能得到这个?

1 个答案:

答案 0 :(得分:1)

在玩完这个之后,我意识到当玩家在创建GKMatch之后但在玩家连接之前取消匹配时,以下函数中的GKPlayerStateDisconnected需要很长时间才能被调用:

- (void)match:(GKMatch *)theMatch player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state

如果创建了GKMatch但玩家没有连接,我可以在~15秒后再次调用findMatchForRequest函数来解决这个问题。

有兴趣知道人们是否有更优雅的解决方案。