首页 文章

在Game Center中重新连接播放器

提问于
浏览
18

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

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

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

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

  • 播放器1断开连接 .
    当玩家1断开连接时,

  • 玩家2离开了比赛 .

  • 播放器1重新连接并检测到他失去了与播放器2的连接并尝试重新连接到播放器2 .

  • Player 2正在寻找新匹配,他正在使用matchmakerViewController .

  • 球员2突然加入了与他离开的球员1的旧比赛 .

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

2 回答

  • 1

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

  • 0

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

相关问题