游戏中心对接会自定义邀请
Posted
技术标签:
【中文标题】游戏中心对接会自定义邀请【英文标题】:Game Center Matchmaking Custom Invites 【发布时间】:2020-05-13 13:48:00 【问题描述】:我确信对此有一个“简单”的答案,但我一直很难找到它。
我创建了一个可在游戏中心运行的 ios 纸牌游戏。目前,它会自动确定在线播放器并且工作正常。
我想做的是让用户邀请他们的游戏中心朋友一起玩。文档并没有真正帮助我。
我正在快速完成我的项目,我觉得我正在处理已弃用的项目和旧文档?
我已经设法获取了用户的朋友列表,然后我假设我需要用该朋友列表实例化一个媒人。
我坚持的是,试图按照苹果的指导方针实施“RecipientResponseHandler”代码:
request.recipientResponseHandler = ^(GKPlayer *player, GKInviteeResponse response)
[self updateUIForPlayer: player accepted: (response == GKInviteeResponseAccepted)];
;
问题一:首先,^符号在swift语言中代表什么?
问题 2:XCode 似乎不喜欢参数中的 * 符号...我尝试过类似...
request.recipientResponseHandler = (player: GKPlayer, response: GKInviteeResponse)
print("Do codeStuffHere")
;
但是,我找不到 XCode 允许的措辞方式......
问题 3:如何编写此响应处理程序以使其工作?
问题 4:另外,要收听邀请,我需要实现 GKLocalPlayerListener
协议...还有什么其他的吗?
问题 5:我觉得我错过了什么明显的东西?
我一直在自学,有时在没有任何方向的情况下理解概念需要一段时间,所以请放心上网。我刚刚开始了解完成处理程序和闭包...
提前感谢您的帮助。
【问题讨论】:
【参考方案1】:^ 符号在 swift 语言中代表什么?
XCode 似乎不喜欢参数中的 * 符号。
那是因为该代码是用 Objective-C 编写的,而不是 Swift。
我假设您正在查看找到的文档 here。如果是这样,那么是的,Apple 只是没有及时更新他们的所有文档以使用 Swift 而不是 Objective-C(即使在选择的语言是 Swift 的页面上,比如这个)。
这是整个代码清单的 Swift 等价物:
func invite(friends: [GKPlayer])
let request = GKMatchRequest()
request.minPlayers = 2
request.maxPlayers = 4
request.recipients = friends
request.inviteMessage = "Your Custom Invitation Message Here"
request.recipientResponseHandler = player, response in
self.updateUI(for: player, accepted: response == .accepted)
func updateUI(for player: GKPlayer, accepted: Bool)
// update your UI here
【讨论】:
不幸的是,我对 GameKit 了解不多,所以我无法回答您的问题 4,但也许这将是一个新的单独问题的好候选人(因为您只是真的应该无论如何,在 *** 上的每个帖子都问一个问题)。【参考方案2】:对于第4题,一定要注册GKLocalPlayerListener,并且只注册一次,例如:
GKLocalPlayer.local.register(self)
【讨论】:
以上是关于游戏中心对接会自定义邀请的主要内容,如果未能解决你的问题,请参考以下文章