这似乎是一个非常明显的问题,但我一直在梳理Apple的文档,似乎找不到直接的答案。
当转弯超时时实际发生了什么 - 也就是说,当turnTimeout参数传递给endTurnWithNextParticipants:turnTimeout:matchData:completionHandler:
时经过的时间间隔已经过去了?逻辑规定要么存在类似于handleTurnEventForMatch:didBecomeActive:
的回调以明确处理不进行移动,要么nextParticipants
数组中的下一个玩家将收到转弯通知。
不幸的是,虽然Apple非常乐意描述turnTimeout
如何限制玩家必须采取行动的时间(并告诉你由游戏决定如何处理这个问题),但是没有关于什么的信息调用方法或提供什么数据,我看到一些非常奇怪的行为 - 即传递的玩家获得一个handleTurnEvent通知,其匹配数据与他们刚刚超时的转弯相同。有人有什么建议吗?
答案 0 :(得分:0)
Apple关于它的作用的文档:
如果下一个行动者没有在指定的位置轮到他们 间隔,阵列中的下一个玩家收到行动通知。 这个过程一直持续到玩家转弯或最后一个玩家 在列表中通知。
在2场比赛的情况下,至少在测试期间,实际上没有发生任何事情。如果P1转弯,则下一个参与者的列表看起来像[P2,P1]。如果P2超时,P1应该收到通知,因为它是列表中的最后一个,但P1刚刚开始,Apple必须考虑"列表的末尾"当你回到最后一个人的时候,而不是当你实际上没有人的时候。这可以防止人们连续两次转弯。虽然不是我希望根据文档发生的事情。我还没有在3+玩家游戏中测试过它。