在Game Center中重新连接播放器

时间:2012-04-17 14:36:02

标签: iphone objective-c ios game-center gamekit

我在使用游戏中心的GKMatch课程时,无法确定如何以良好的方式重新启动断开连接的玩家。这场比赛是1对1比赛。

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

[[GKMatchmaker sharedMatchmaker] addPlayersToMatch:theMatch matchRequest:request completionHandler:^(NSError *error)

这是应该做的。当其他玩家建立了连接时,他会重新获得并且匹配可以继续。但这留下了一个我无法解决的问题。方案如下:

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

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

2 个答案:

答案 0 :(得分:1)

您可以为仍然连接的播放器提供选项,以重新邀请或退出。如果其他玩家离开,您也可以将匹配请求移除给离开的玩家。

答案 1 :(得分:0)

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