我正在尝试创建一个简单的回合制2人游戏,但我很难理解如何使用GKTurnBasedMatchmaker
这是我到目前为止的步骤:
如下所示展示配对视图控制器:
self.match.minPlayers = 2;
self.match.maxPlayers = 2;
self.match.defaultNumberOfPlayers = 2;
let mmVC = GKTurnBasedMatchmakerViewController(matchRequest: match);
mmVC.turnBasedMatchmakerDelegate = self;
self.view?.window?.rootViewController?.present(mmVC, animated: true, completion: nil);
我现在不知道在此之后该怎么做。
如何判断matchmakerViewController是否成功找到匹配项并且我应该转换到游戏?
didFindMatch回调似乎是一个明显的解决方案,但已被弃用
答案 0 :(得分:2)
我也遇到了GKTurnBasedMatch的问题。但我可以帮助你向前迈出几步。
首先看一下与此相关的一些其他问题,以解决您可能遇到的问题。显然,整个GKLocalPlayerListener
协议给很多人带来了麻烦:Another question about GTTurnBasedMatch
反正:
GKTurnbasedMatchmakerViewControllerDelegate
协议现在只有两个与之关联的方法。有一个用于取消VC,另一个用于处理错误。
如果看起来Apple可能选择不让GKTurnbasedMatchmakerViewControllerDelegate
处理任何实际的配对方法;他们将这些责任交给GKTurnBasedEventListener
协议(GKLocalPlayerListener
下)。
因此,在完成上述操作后,请务必执行以下操作:
GKLocalPlayerListener
协议。[[GKLocalPlayer localPlayer] registerListener:self];
- (void)player:(GKPlayer *)player receivedTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive
协议GKLocalPlayerListener
醇>
当你开始一个新游戏时,这个功能应该开启。
不幸的是,我仍在努力克服我用GK遇到的其他障碍,祝你好运。