我正在尝试实现一个基于回合的多人游戏(双人战略棋盘游戏)。我已经成功地验证了本地播放器并提供了GKTurnBasedMatchmakerViewController (标准接口)。
我对如何检索玩家选择的GKTurnBasedMatch对象(如果可用)感到有点困惑。对于此目的,GKTurnBasedMatchmakerViewControllerDelegate协议的这种方法似乎非常合理,但显然它已被弃用。
func turnBasedMatchmakerViewController(_ viewController: GKTurnBasedMatchmakerViewController, didFind match: GKTurnBasedMatch)
如有任何提示,我们将不胜感激!
发布于 2020-04-06 20:36:27
我同意,实现这一点的委托函数是有用的。
我的解决方案是在呈现matchmaker视图控制器的委托中注册一个侦听器,让我们将其称为mainVC。MainVC应符合GKLocalPlayerListener协议。
// In mainVC
GKLocalPlayer.localPlayer().registerListener(self)然后,当玩家在标准界面中选择一场比赛时,将调用以下函数,您必须在mainVC中实现该函数:
// in mainVC
func player(player: GKPlayer, receivedTurnEventForMatch match: GKTurnBasedMatch, didBecomeActive: Bool) {
// Dismiss the turnBasedMatchmakerViewController standard interface
// Load your match using the match object passed above
}在此函数中,关闭与玩家匹配的标准界面,然后使用segue或其他方式加载游戏。
receivedTurnEventForMatch函数是用已发生的事件更新匹配的标准方法。它在以下情况下被调用:
https://stackoverflow.com/questions/55747247
复制相似问题