2012-04-17 46 views
18

我很難找出如何以良好的方式重新使用斷開連接的播放器,並使用Game Center的GKMatch類。比賽是1比1比賽。在Game Center中重新連接播放器

當我發現斷開的球員,我試圖重新邀請特定球員的比賽與此呼籲:

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

這工作,因爲它是應該做的。當其他玩家建立連接時,他會被重新激活並且比賽可以繼續。但是這留下了一個我無法解決的問題。這裏是場景:

  • 玩家1斷開連接。
  • 玩家2在玩家1斷開連接時離開比賽。
  • 玩家1重新連接並檢測到他失去了與玩家2的連接並嘗試重新連接到玩家2。
  • 玩家2正在尋找新的比賽,他正在用matchmakerViewController進行比賽。
  • 玩家2突然加入他已經離開的玩家1的舊比賽。

所以我的問題是,matchmakerViewController讓我們的玩家加入舊的匹配,如果他們被重新激活。有沒有更好的方法來處理這種重新連接的情況,以便人們不會被邀請回老比賽?

+0

@ Cupcake在我的代碼中發生的事情是,當1人斷開連接時,其他人自動斷開與遊戲的連接。是否發生這種情況?如何通過玩家2get diconnect來避免玩家1的斷開 – 2012-10-03 10:58:51

回答

0

如果我檢測到玩家2已經使用了退出功能,而不是在斷開連接時超時,那麼我會繼續並阻止玩家1在相同遊戲中的重新遊玩。

+0

玩家1如何知道玩家2斷開連接? – 2012-10-03 10:56:57

1

您可以向仍然連接的玩家提供選項,以重新邀請或退出。如果其他玩家離開,您也可以將匹配請求移除給離開的玩家。

+0

我的問題是重新審視。玩家1在玩家2正在尋找新遊戲時重新玩家2。這是一個問題,因爲玩家2將重新參與他離開的遊戲。如果其他玩家離開,我不能取消配對請求,因爲我不知道他什麼時候離開。他們現在沒有連接,並且不能分辨玩家是否離開。 – 2012-06-19 10:13:19