我正在开发一个基于游戏套件的游戏。我正在为一个球员参与的比赛制作一个自定义的用户界面。我用以下命令得到火柴:
loadMatchesWithCompletionHandler:有一种用例,用户在比赛中,不是轮到他们,他们想退出,不再在游戏列表中看到该比赛。我的代码调用
participantQuitOutOfTurnWithOutcome:withCompletionHandler: 并从表视图中删除该行。
在这一点上,另一个玩家得到了机会,并看到他们的对手已经退出。
match.remoteParticipant.matchOutcome == GKTurnBasedMatchOutcomeQuit所以他们用一个调用来结束游戏
endMatchInTurnWithMatchData:completionHandler:问题是这个游戏仍然存在于游戏中心。所以打电话给
loadMatchesWithCompletionHandler: 在第一个玩家的应用程序会将其拉回并显示在游戏列表中。
我能想到的唯一解决方案是保存表中匹配的匹配id和黑名单。看起来有点不确定。
似乎没有用于此目的的API。即退出并删除匹配我的匹配列表。有没有更好的方法来处理这种情况,只使用游戏中心API?
发布于 2013-07-23 11:03:33
我认为您需要将每个参与者的matchOutcome属性设置为GKTurnBasedMatchOutcomeNone以外的值,然后才能删除匹配。从文档中:
调用此方法的
将结束所有玩家的比赛。此方法只能由>当前参与者调用。在游戏调用此方法之前,必须将存储在participants属性中的每个>participant对象的matchOutcome属性设置为GKTurnBasedMatchOutcomeNone以外的值。
https://stackoverflow.com/questions/16951694
复制相似问题