有没有办法“暂停”邀请?
我正在使用Game Kit / Game Center创建一个实时多人游戏。我设置了设备,帐户等,在正常情况下,一切都很好。不起作用的部分是忽略邀请时。
我使用标准的配对视图控制器来创建匹配。我
GKMatchRequest *request = [[GKMatchRequest alloc]init];
request.minPlayers = 2;
request.maxPlayers = 4;
GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc]initWithMatchRequest:request];
mmvc.matchmakerDelegate = self;
[[[[[UIApplication sharedApplication]delegate]window]rootViewController]presentViewController:mmvc animated:YES completion:nil];
如果“被邀请者”及时响应邀请,这一切都可行。当“被邀请者”忽略邀请时,会出现问题。在这种情况下,标准配对视图控制器会无限期地等待响应。
这是一个问题,当“被邀请者”使用横幅或提醒时都会发生这种情况:
人们可以很容易地忽略横幅 - 如果横幅出现时没有选择横幅,则邀请者会无限期地等待。
当邀请到达并且游戏中心通知设置被设置为“警报”时,则弹出警报,用户别无选择,只能“拒绝”或“接受”。如果他选择“拒绝”或“警告”,那么一切都很好,因为通知了邀请者。但是如果“被邀请者”按下“主页”按钮,则警报消失,并且不通知“邀请者”。结果,邀请者再次无限期地等待。
由于这应该由Game Center处理,因此没有api或代码用于超时。由于用户使用相同的视图控制器进行自动匹配,并且为了邀请其他特定玩家,所以玩家正在选择哪个选项并不透明,因此不能简单地超时,因为直到玩家才知道玩家在做什么。视图控制器通知代理。 如何处理这种情况?有没有办法让“邀请者”知道被忽略的邀请?