回合制配对在iOS 10中不起作用
我的游戏在iOS 10之前运行良好。现在,iOS 10的每个人都无法邀请和玩他们想要的人。
当用户说他们想玩多人游戏时,我会创建一个GKMatchRequest
如下所示:
GKMatchRequest *request = [[GKMatchRequest alloc] init]; request.minPlayers = 2; request.maxPlayers = 4; request.defaultNumberOfPlayers = 2;
我使用GKTurnBasedMatchmakerViewController
来处理邀请等。用户看到一个界面,让他们改变比赛中的球员数量并邀请球员。 让我们说他们只想要2名球员,所以他们离开了,他们想和他们的朋友一起玩。 因此,他们使用界面向他们的朋友发送邀请。 结果是,在我的委托上调用了GKMatch
,其中GKMatch
有4个参与者。 它应该只有2! 第一个参与者是本地玩家,另外3个具有“匹配”状态。 所以,他们的朋友甚至不在列表中。 有没有人有任何解决这个问题的建议? 这个相同的代码在iOS 10之前的iOS版本中运行良好。
看来,对于IOS10,defaultNumberOfPlayers没有被尊重。
请记住, GKTurnBasedMatch
在给定的匹配中有三种类型的玩家:
- 创建匹配的创始人
- 被特别邀请参加比赛的球员
- 自动匹配的玩家
如果您查看比赛中所有4名球员的球员状态(使用您的示例),我怀疑您会看到以下结果
- 活跃(发起者)
- 邀请(你邀请的1个人)
- 匹配
- 匹配
如果是这样,则表示忽略了defaultNumberOfPlayers
,并且最多创建了4个玩家(1个发起者,1个被邀请者和2个自动匹配插槽)。
解决方法似乎是在创建匹配时将maxNumberOfPlayers
设置为所需的上限,在本例中为2。