我正在尝试使用 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];
}
};
嗯,这很好,但接下来呢?发件人设备显然正在等待某种标准类型的响应,因为如果我点击“立即播放”,它还会显示一条警报,告诉我有一些邀请尚未回答。
那么如何接受邀请呢?我应该发回什么样的数据(以及如何发回)?我到底应该在接收方做些什么?游戏应该在点击“接受”后立即开始,还是我应该先关闭 AlertView 然后点击“立即播放”?
Ray Wenderlich 的教程说我应该选择第二种方式,但是当解除警报并点击“立即播放”时,发件人设备仍在等待响应并且不知道我已经接受了邀请。如果我此时点击“立即播放”,那么正如我上面所说,它会显示一条警报,说明应用程序正在等待响应。因此,如果您曾经这样做过,请解释一下我该怎么做。谢谢!