- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在 iOS 9 中,Apple 弃用了 public func turnBasedMatchmakerViewController(_ viewController: GKTurnBasedMatchmakerViewController, didFind match: GKTurnBasedMatch)
GKTurnBasedMatchmakerViewControllerDelegate
的方法.
苹果的方向是使用func player(_ player: GKPlayer, receivedTurnEventFor match: GKTurnBasedMatch, didBecomeActive: Bool)
GKLocalPlayerListener
的方法| .
仅使用 receivedTurnEventFor match
导致以下情况:
+
显示 GKTurnBasedMatchmakerViewController
.Play Now
Game Center 将搜索匹配项。matchData
的匹配项(一场新的比赛),或者让用户进入一场正在进行的比赛——游戏会通过 receivedTurnEventFor match
获知这一点. 虽然确定是否已创建新匹配非常简单(使用 matchData
),但似乎没有一种方法可以确定是否已找到匹配与是否正在更新所有事件流中的匹配通过receivedTurnEventFor match
.
我的问题是:
使用 GKLocalPlayerListener
时的 receivedTurnEventFor match
方法,有没有办法确定转弯事件是否是配对查找的结果?
最佳答案
有四种情况:1.你加入了一个新的比赛,轮到你了(你是比赛的创造者)2.你加入一场新比赛,轮到其他玩家了(你找到了比赛)3.你加入一场现有的比赛,轮到你了4. 你加入一场现有的比赛,轮到其他玩家了。情况 3 和 4 可能是您在比赛之间切换或重新加入比赛。
您可以检查 match.currentPatriticant
和 lastTurnDate
属性以确定发生哪种情况。
如果玩家刚刚创建了一场新比赛(receivedTurnEventFor
被调用作为比赛的结果)match.participants[0].lastTurnDate
为 nil 并且 match.currentParticipant?.player?.playerID
等于 GKLocalPlayer.localPlayer().playerID
(案例 1)。
如果您加入现有比赛:match.participants[0].lastTurnDate
为 nil
并且 match.currentParticipant?.player?.playerID
不等于 GKLocalPlayer.localPlayer ().playerID
(你加入了一场新的比赛,但其他玩家在回合中 - 案例2)
确定明确情况 3 和 4 您可以检查所有参与者的 lastTurnDate
并将本地玩家与当前玩家进行比较。
关于ios - 使用 GKLocalPlayerListener 的 receivedTurnEventFor 匹配时,有没有办法确定转弯事件是否是匹配查找的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41405323/
我是一名优秀的程序员,十分优秀!