我正在为游戏中心制作一个基于交替的游戏,每场比赛有2名参与者。我想在每个回合都实施一个时间限制,这样玩家就不必永远等待其他玩家完成转弯。我试过了:
currentMatch endTurnWithNextParticipants:[[NSArray alloc] initWithObjects:nextParticipant,nil] turnTimeout:GKTurnTimeoutDefault matchData:data completionHandler:^(NSError *error)
但没有任何反应,玩家仍然永远不能轮到他们,所以我显然在这里遗漏了一些东西。
达到时限后会发生什么? gamecenter
如何处理这个问题,我应该在哪里处理这个问题?
答案 0 :(得分:1)
该方法更新存储在Game Center上的数据以获取当前匹配。
根据Apple Docs:
如果下一个行动者未在指定的时间间隔内轮到他们,则阵列中的下一个玩家会收到行动通知。这个过程一直持续到玩家转弯或者通知列表中的最后一个玩家。 调用此方法时,它会创建一个新的后台任务来处理请求。然后该方法将控制权返回给您的游戏。稍后,当任务完成时,Game Kit会调用您的完成处理程序。请记住,可以在最初用于调用方法的线程之外的线程上调用完成处理程序。这意味着块中的代码需要是线程安全的。
我认为你还需要以编程方式结束玩家的结束。