我在使用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会让玩家加入旧比赛。有没有更好的方法来处理这种重新连接的情况,以便人们不会被邀请回旧比赛?