gpt4 book ai didi

ios - 使用 GKLocalPlayerListener 的 receivedTurnEventFor 匹配时,有没有办法确定转弯事件是否是匹配查找的结果?

转载 作者:可可西里 更新时间:2023-11-01 02:09:05 24 4
gpt4 key购买 nike

在 iOS 9 中,Apple 弃用了 public func turnBasedMatchmakerViewController(_ viewController: GKTurnBasedMatchmakerViewController, didFind match: GKTurnBasedMatch)
GKTurnBasedMatchmakerViewControllerDelegate 的方法.

苹果的方向是使用func player(_ player: GKPlayer, receivedTurnEventFor match: GKTurnBasedMatch, didBecomeActive: Bool) GKLocalPlayerListener的方法| .

仅使用 receivedTurnEventFor match导致以下情况:

  1. 用户点击 +显示 GKTurnBasedMatchmakerViewController .
  2. 用户点击 Play Now Game Center 将搜索匹配项。
  3. Game Center 将返回空 matchData 的匹配项(一场新的比赛),或者让用户进入一场正在进行的比赛——游戏会通过 receivedTurnEventFor match 获知这一点.

虽然确定是否已创建新匹配非常简单(使用 matchData ),但似乎没有一种方法可以确定是否已找到匹配与是否正在更新所有事件流中的匹配通过receivedTurnEventFor match .

我的问题是:

使用 GKLocalPlayerListener 时的 receivedTurnEventFor match方法,有没有办法确定转弯事件是否是配对查找的结果?

最佳答案

有四种情况:1.你加入了一个新的比赛,轮到你了(你是比赛的创造者)2.你加入一场新比赛,轮到其他玩家了(你找到了比赛)3.你加入一场现有的比赛,轮到你了4. 你加入一场现有的比赛,轮到其他玩家了。情况 3 和 4 可能是您在比赛之间切换或重新加入比赛。

您可以检查 match.currentPatriticantlastTurnDate 属性以确定发生哪种情况。

如果玩家刚刚创建了一场新比赛(receivedTurnEventFor 被调用作为比赛的结果)match.participants[0].lastTurnDate 为 nil 并且 match.currentParticipant?.player?.playerID 等于 GKLocalPlayer.localPlayer().playerID(案例 1)。

如果您加入现有比赛:match.participants[0].lastTurnDatenil 并且 match.currentParticipant?.player?.playerID 不等于 GKLocalPlayer.localPlayer ().playerID(你加入了一场新的比赛,但其他玩家在回合中 - 案例2)

确定明确情况 3 和 4 您可以检查所有参与者的 lastTurnDate 并将本地玩家与当前玩家进行比较。

关于ios - 使用 GKLocalPlayerListener 的 receivedTurnEventFor 匹配时,有没有办法确定转弯事件是否是匹配查找的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41405323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com