如何解决游戏中心的邀请朋友?

时间:2013-01-13 20:52:24

标签: iphone ios game-center multiplayer

我正在通过游戏中心开展多人游戏,我遇到了一个问题。当我试图邀请我的一个朋友时,我失败了。我尝试过使用模拟器和iphone以及两部iphone并且总是遇到同样的问题。

我搜索了我的问题的解决方案,发现有很多开发人员遇到这个问题。我使用的是iOS 6,应用程序仍在生产中,因此它位于沙盒中。

我在Ray Wenderlich教程中使用相同的代码 - CatRace(也有人写过这个问题,但是没有人发布解决方案。

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您必须发送 GK 事件以表示玩家(您)结束了他们的回合,然后 GameCenter 才会向您邀请的玩家发送推送通知邀请。

所以每个玩家的第一轮事件应该发送一个类似 [“Player1”:“Joined”] 的 matchData 数组

这将强制 GameCenter 向每个玩家发送邀请。

然后一旦您确认每个玩家都发送了“Joined”GK 事件,您就开始游戏。

https://developer.apple.com/documentation/gamekit/gkturnbasedmatch/1520765-endturn

func endTurn(withNextParticipants nextParticipants: [GKTurnBasedParticipant], 
 turnTimeout timeout: TimeInterval, 
       match matchData: Data, 
completionHandler: ((Error?) -> Void)? = nil)

nextParticipants 是被邀请的玩家,matchData 是一个 NSArray,如 [“Joined”] 使用 NSKeyArchiver。调用此函数后,GameCenter 会发送推送通知邀请玩家。