[英]How to get notified when a player “Remove” a match in progress from GKTurnBasedMatchmakerViewController
我正在使用默認的GKTurnBasedMatchmakerViewController
。 玩家可以通過將匹配單元向左滑動然后點擊紅色的“刪除”按鈕來“刪除”正在進行的匹配。 但這並沒有通知其他玩家第一個已經移除(並退出)該匹配。 另一個繼續等待另一名球員加入比賽並轉彎。 但這違背了我游戲的邏輯。 我想在任何球員退出比賽或將其移除后立即結束比賽。 有沒有辦法接受任何類型的回調或為想要刪除比賽的玩家設置matchOutcome
? 感謝幫助。
這一直是GKTurnBasedMatches
。 匹配可以在游戲之外,通過匹配器視圖控制器和(在<= IOS9中)Game Center應用程序更新,經常創建不可恢復的場景。
播放器滑動刪除匹配描述使用相同的問題(但引用現已刪除的游戲中心應用程序)作為漏洞,以避免招致損失。 我在那里發布了部分解決方案,類似的方法也有助於緩解您的情況:
loadMatchesWithCompletionHandler
來拉出本地玩家知道的所有匹配。 本地播放器在您的應用程序“外部”刪除的匹配項將從服務器列表中(適當地)丟失。 loadMatchWithID
加載特定匹配loadMatchWithID
。 因此,對於每個“缺失”匹配,使用您在本地存儲的matchID調用loadMatchWithID
,獲取匹配對象,然后根據玩家在已刪除匹配中的狀態調用participantQuitInTurnWithOutcome
, participantQuitOutOfTurnWithOutcome
或declineInviteWithCompletionHandler
。 雖然不理想,但只要“刪除者”再次啟動游戲,您就有機會評估所有游戲並強制從他們刪除的匹配中徹底退出。 調用任一participantQuit
功能將發送通知(和/或通過轉)到其他玩家。
但是,如果“刪除者”從未再次開始游戲,這種解決方法將無效。 在那種情況下,如果他們在一些設定的時間間隔后沒有看到任何進展,那么所有其他玩家可以做的最終是自己離開比賽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.