【问题标题】:Reconnect player in Game Center在 Game Center 中重新连接玩家
【发布时间】:2012-04-17 14:36:02
【问题描述】:

我无法弄清楚如何使用 Game Center 的 GKMatch 类以一种好的方式重新邀请断开连接的玩家。该游戏是 1 对 1 游戏。

当我检测到断开连接的玩家时,我会尝试通过此调用重新邀请该特定玩家参加比赛:

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

这可以正常工作。当其他玩家建立连接后,他会被重新邀请,比赛可以继续。但这留下了一个我无法解决的问题。场景来了:

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

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

【问题讨论】:

  • @Cupcake。在我的代码中,当 1 个玩家断开连接时,其他玩家会自动断开与游戏的连接。是这样吗?如何避免玩家 1 断开连接,但玩家 2 断开连接

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


【解决方案1】:

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

【讨论】:

  • 我的问题是重新邀请。当玩家 2 正在寻找新游戏时,玩家 1 重新邀请玩家 2。这是一个问题,因为玩家 2 将被重新邀请参加他离开的游戏。如果其他玩家离开,我无法删除匹配请求,因为我不知道他何时离开。他们此时没有连接,无法判断玩家是否离开。
【解决方案2】:

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

【讨论】:

  • 玩家 1 怎么知道玩家 2 断线了?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多