我正在尝试实施回合制多人游戏(2人策略棋盘游戏)。我设法对本地播放器进行了身份验证,并提出了GKTurnBasedMatchmakerViewController(标准接口)。
我对如何获取播放器选择的GKTurnBasedMatch对象(如果有)感到困惑。为此目的,这种GKTurnBasedMatchmakerViewControllerDelegate协议的方法似乎非常明智,但显然已弃用。
func turnBasedMatchmakerViewController(_ viewController: GKTurnBasedMatchmakerViewController, didFind match: GKTurnBasedMatch)
任何提示将不胜感激!
答案 0 :(得分:0)
我同意,实现这一目标的委托功能非常有用。
为此,我的解决方案是在提供媒人视图控制器的委托中注册一个侦听器,我们称之为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函数是使用发生的事件更新比赛的标准方法。在以下情况下被称为