我的游戏在 iOS 10 之前运行良好。现在,每个使用 iOS 10 的人都无法邀请他们想要的人并与他们一起玩。
当用户说他们想玩多人游戏时,我创建一个GKMatchRequest
像这样:
GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = 2;
request.maxPlayers = 4;
request.defaultNumberOfPlayers = 2;
I use a GKTurnBasedMatchmakerViewController
处理邀请等。用户会看到一个界面,可以让他们更改比赛中的玩家数量并邀请玩家。假设他们只想要 2 名玩家,所以他们离开了,想和他们的朋友一起玩。因此,他们使用该界面向他们的朋友发送邀请。结果是,didFindMatch
被召唤到我的代表GKMatch
有 4 名参与者。应该只有2个!第一个参与者是本地玩家,另外 3 个参与者的状态为“正在匹配”。所以,他们的朋友甚至不在名单中。有人对解决这个问题有什么建议吗?相同的代码在 iOS 10 之前的 iOS 版本中运行良好。
看来在 IOS10 中,defaultNumberOfPlayers 没有被遵守。
请记住GKTurnBasedMatch
在给定的比赛中有三种类型的球员:
- 创建比赛的发起者
- 特邀参加比赛的选手
- 自动匹配进入比赛的玩家
如果您查看比赛中所有 4 名球员的球员状态(使用您的示例),我怀疑您会看到以下结果
- 活跃(发起者)
- 已邀请(您邀请的 1 人)
- 匹配
- Matching
如果是这样,那就表明defaultNumberOfPlayers
被忽略,并且创建的比赛最多有 4 名玩家(1 名发起者、1 名受邀者和 2 个自动匹配位置)。
解决方法似乎是设置maxNumberOfPlayers
当您创建匹配时,将其设置为所需的上限(在本例中为 2)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)