玩家滑动以移除匹配

时间:2016-01-25 14:09:28

标签: ios game-center gkturnbasedmatch

假设我与两名球员进行了回合比赛。在某些时候,玩家1意识到他即将失去游戏。当玩家1轮到他时,他使用Game Center App进行滑动以移除匹配。

的问题:

一个。在播放器1上转动计时器永不过期。因此,当时间到期时,比赛的转弯将不会切换到播放器2。

B中。该游戏还提供仅查看模式,因此玩家可以在他不在时查看游戏进度。但由于没有更新状态表明玩家1已手动删除了匹配。 App无法提供解决方案。此外,您只能在轮到您时结束比赛。

理想情况下,我想宣布玩家2为胜利者并结束比赛。

在这种情况下你如何处理?

1 个答案:

答案 0 :(得分:1)

我终于找到了解决方法。

如果您删除匹配项,然后拨打GKTurnBasedMatch:loadMatchesWithCompletionHandler,则不会显示已删除的匹配项(如预期的那样)。但是,如果您仍然拥有已删除的匹配ID,则 仍会使用GKTurnBasedMatch:LoadMatchWithID重新下载已删除的匹配。

我认为我们可以合理地假设The Cheater将再次玩游戏;否则,他们为什么要关心招致损失呢?因此,我实施了以下内容:

  1. 在设备上本地维护一个匹配的表格。
  2. 在启动时,从Game Center中提取本地玩家的匹配列表,并与我的本地列表进行比较。
  3. 当Cheater识别出情况并使用Game Center界面删除比赛时,匹配将从Game Center中删除,但不会从我的本地数据库中删除。当The Cheater再次开始我的游戏时,我发现他们在本地比在Game Center上有更多的比赛。

    然后我根据需要调用participantQuitInTurnWithOutcomeparticipantQuitOutOfTurnWithOutcome,结果为GKTurnBasedMatchOutcomeLost

    这将轮到下一位玩家并记录了The Cheater的损失。如果骗子再也不玩游戏,它就不会工作。 (但是,如果他们没有参加比赛,他们就不会再破坏任何比赛,所以混乱就会被遏制)