相关疑难解决方法(0)

如何在游戏中心接受邀请

我正在尝试与Game Center实施邀请,有一件事我不明白.好的,我已经从一个设备向另一个设备发送了邀请.然后我在接收器上有一个UIAlertView,询问我我想接受或拒绝邀请.当我接受它时,它是这样处理的:

[GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite *acceptedInvite, NSArray *playersToInvite) 
                 {
                     // Insert application-specific code here to clean up any games in progress.
                     if (acceptedInvite)
                     {
                         GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithInvite:acceptedInvite] autorelease];
                         mmvc.matchmakerDelegate = self;
                         [presentingViewController presentModalViewController:mmvc animated:YES];
                     }
                     else if (playersToInvite)
                     {
                         GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease];
                         request.minPlayers = 2;
                         request.maxPlayers = 4;
                         request.playersToInvite = playersToInvite;

                         GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];
                         mmvc.matchmakerDelegate = self;
                         [presentingViewController presentModalViewController:mmvc animated:YES];

                     }
                 };
Run Code Online (Sandbox Code Playgroud)

嗯,这很好,但接下来呢?发件人设备显然正在等待某种标准类型的响应,因为它还会显示一条警告,告诉我如果我点按"立即播放",则会收到一些尚未接听的邀请.

那么我该如何接受邀请呢?我应该寄回什么样的数据(以及如何)?我究竟应该在接收器方面做些什么呢?点击"接受"后游戏是否应立即开始,或者我应首先关闭AlertView,然后点击"立即播放"?

Ray Wenderlich的教程说我应该选择第二种方式,但是当解除警报并点击"立即播放"时,发现发送方设备仍在等待响应并且不知道我已经接受了邀请.如果我此时点击"立即播放",那么,如上所述,它会显示一条警告,表示应用程序正在等待响应.所以,如果你曾经这样做过,请解释我应该怎么做.谢谢!

iphone multiplayer game-center

6
推荐指数
1
解决办法
7592
查看次数

让GameCenter邀请朋友上班(iOS9?)

我无法让GameCenter邀请朋友上班.匹配器制造商视图控制器很快显示被邀请的玩家以及其下的一个小文本"失败".也许我选择了错误的时间来学习GameCenter,因为很多人都报告了iOS9的困难.但也许某处有解决方案.

基本:

  1. iTunesConnect应用程序记录存在,应用程序未公开,已启用GameCenter,已创建一个排行榜,已创建两个沙箱用户(与我的主要苹果ID不同)
  2. 该应用程序有一个视图控制器,现在将处理所有GameCenter的东西
  3. viewDidLoad播放器中,通过分配块来启动认证[GKLocalPlayer localPlayer].authenticateHandler.在块中,显示传入的视图控制器(如果有的话).这有效.
  4. 视图控制器被设置为GKGameCenterControllerDelegate并且它工作,接收到"didFinish"调用并且我在那里关闭GameCenter视图控制器.
  5. 在authenticateHandler块中,当玩家通过身份验证时,我将视图控制器设置为侦听器[[GKLocalPlayer localPlayer] registerListener:...];.所有GKLocalPlayerListener方法的方法存根都通过日志调用实现.
  6. 当点击某个按钮时,我创建一个GKMatchRequestGKMatchmakerViewController,将我的视图控制器设置为匹配器委托并显示匹配器视图控制器.同样,所有委托方法都使用日志调用实现.
  7. 我可以运行应用程序,在媒人视图控制器中点击"邀请朋友"并按照屏幕直到我点击"发送"按钮.然后被邀请的玩家显示在右侧插槽中,很快"失败"显示在它下方并再次显示"自动匹配".
  8. 没有调用任何玩家监听器方法.

问题:

  1. 我是否需要启用推送通知才能让邀请朋友工作?(如果是,这在哪里记录?)
  2. 是否可以在模拟器/模拟器或设备/模拟器之间或仅在设备/设备之间测试邀请朋友?
  3. 在设备的GameKit日志中,"没有注册同行"是什么意思?(见下文)

其他资源:

  1. 在IOS 9中游戏中心多人游戏好友被打破了吗?(OCT/2015)
  2. 如何解决游戏中心的邀请朋友?(2013)
  3. http://www.raywenderlich.com/60980/game-center-tutorial-how-to-make-a-simple-multiplayer-game-with-sprite-kit-part-1(CatRace - 2014年3月)
  4. 游戏中心邀请立即失败(2015年10月)

GameKit日志:

我打开iPhone上的设置中的GameCenter日志记录并导出日志.引起我注意的第一件事是"没有注册同行(...)":

<NSHTTPURLResponse: 0x167a2cc0> { URL: https://service.gc.apple.com/WebObjects/GKInvitationService.woa/wa/initiate } { status code: 200, headers { ... }
...
status: (200) no error
header: <CFBasicHash 0x165e6480 [0x3b6633e8]>{type = immutable dict, count = 10,
entries =>
...
body: <CFBasicHash 0x17811ad0 [0x3b6633e8]>{type …
Run Code Online (Sandbox Code Playgroud)

objective-c ios game-center ios9

5
推荐指数
0
解决办法
782
查看次数

标签 统计

game-center ×2

ios ×1

ios9 ×1

iphone ×1

multiplayer ×1

objective-c ×1