【问题标题】:ios11 game center find player failsios11游戏中心查找玩家失败
【发布时间】:2018-02-14 17:45:03
【问题描述】:

我正在开发一个多人游戏。我想使用“标准” GKMatchmakerViewController 来寻找这样的玩家:

let matchrequest = GKMatchRequest()
matchrequest.minPlayers = 2
matchrequest.maxPlayers = 2
matchrequest.defaultNumberOfPlayers = 2
matchrequest.inviteMessage = "Hello, do you want to play with me ?"

let mmVC = GKMatchmakerViewController(matchRequest: matchrequest)
mmVC?.matchmakerDelegate = self
self.present(mmVC!, animated: true)

如果我在两台设备上调用 GKMatchmakerViewController 并按“立即播放”,它们就会找到彼此,一切都很好。

但是,当我按“邀请朋友”时,按右侧的“+”添加收件人,然后转到“附近”选项卡,没有玩家出现。

Q1:为什么我在“附近”看不到播放器,但按“立即播放”可以连接到它

Q2:如果我通过 iMessage 向我的其他玩家发送邀请,则该消息会在另一台设备上收到,当我点击它时,应用程序就会启动。但它仍保留在其主屏幕上,不采取任何行动来响应邀请。需要实施什么协议或回调才能对“游戏邀请”引起的应用启动做出反应?

请参考最新的 API。 GC API 发生了巨大变化,大多数 SO 答案都指向已弃用的 API。

谢谢 克里斯

【问题讨论】:

    标签: ios swift game-center multiplayer gamekit


    【解决方案1】:

    对于第二季度。您需要实现 GKLocalPlayerListener 来接听电话。

    您是如何发送邀请的?我试图弄清楚如何从字符串中获取 GKPlayer。比如如果我想向我的朋友“Blazing420”发送邀请,我如何知道他的 GKPlayer ID 或如何找到他,因为 GKMatchRequest.recipients 只接受 GKPlayers 作为参数。

    【讨论】:

    • 我使用 GKMatchmakerViewController,当它打开时,您可以按“邀请”,然后只输入 appleID。系统会发送一条 iMessage,您可以点击其他设备。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多