在Game Center中重新连接播放器

Tho*_*sen 18 iphone objective-c gamekit ios game-center

我正在使用GKMatch类为游戏中心搞清楚如何以一种好的方式重新启动断开连接的玩家.该游戏是1对1游戏.

当我检测到一个断开连接的玩家时,我尝试将该特定玩家重新用于此次调用的匹配:

[[GKMatchmaker sharedMatchmaker] addPlayersToMatch:theMatch matchRequest:request completionHandler:^(NSError *error)
Run Code Online (Sandbox Code Playgroud)

这可以按照预期的方式工作.当其他玩家建立了连接时,他会重新获得并且匹配可以继续.但这留下了一个我无法解决的问题.场景如下:

  • 播放器1断开连接.
  • 当玩家1断开连接时,玩家2离开比赛.
  • 播放器1重新连接并检测到他失去了与播放器2的连接并尝试重新连接到播放器2.
  • 玩家2正在寻找新匹配,他正在使用matchmakerViewController.
  • 玩家2突然加入了与他离开的玩家1的旧比赛.

所以我的问题是matchmakerViewController允许玩家加入旧比赛,如果他们被重新激活.有没有更好的方法来处理这种重新连接方案,这样人们就不会被邀请回旧的比赛?

小智 0

如果我检测到玩家 2 使用了退出功能而不是在断开连接时超时,我会继续阻止玩家 1 在同一游戏中重新邀请。