假设我有两名玩家进行回合制比赛。在某个时候,玩家1意识到他将要输掉比赛。轮到玩家1时,他使用Game Center App滑动来删除比赛。
问题:
答:轮到计时器永远不会在玩家1上过期。因此,时间到时比赛的轮到不会切换到玩家2上。
B.游戏还提供仅查看模式,因此玩家可以在转弯时查看游戏进度。但是由于没有状态被更新以指示玩家1已经手动删除了比赛。应用程式无法提供解析度。另外,轮到您时才可以结束比赛。
理想情况下,我想宣布玩家2为赢家并结束比赛。
在这种情况下如何处理?
最佳答案
我终于找到了解决方法。
如果删除匹配项,则调用GKTurnBasedMatch:loadMatchesWithCompletionHandler
,删除的匹配项不会出现(如预期)。但是,事实证明,如果您碰巧仍然具有删除的匹配的ID,您可以仍然使用GKTurnBasedMatch:LoadMatchWithID
重新下载已删除的匹配。
我认为我们可以合理地认为“骗子”将再次玩游戏。否则,他们为什么会担心遭受损失?因此,我实现了以下内容:
当作弊者识别出这种情况并使用Game Center界面删除了比赛后,该比赛将从Game Center中删除,但不会从我的本地数据库中删除。当The Cheater再次开始我的游戏时,我看到他们在本地的比赛比在Game Center上的比赛多。
然后,根据需要使用
participantQuitInTurnWithOutcome
的结果调用participantQuitOutOfTurnWithOutcome
或GKTurnBasedMatchOutcomeLost
。这将回合转到下一位玩家,并记录了The Cheater的损失。但是,如果作弊者再也不玩游戏了,那就行不通了。 (但是,如果他们不参加比赛,就不会破坏比赛,因此可以避免混乱)
关于ios - 玩家滑动即可删除比赛,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34994621/