我一直在尝试实现 Game Center 多人游戏并努力获得 GKMatchViewController 之外的任何东西。
我有两个视图,一个是我的主菜单,这是启动多人游戏并且玩家获取 GKMatchViewController 的地方。然后在此之后,用户不知道它,但视图更改为他们实际玩的多人视图,因此当 GKMatchViewController 被关闭时,它们位于游戏视图而不是菜单中。
在这里我启动多人游戏(是的,我正在使用 cocos2d):
-(void)mpGo:(id)sender{
GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease];
request.minPlayers = 2;
request.maxPlayers = 2;
[[GKMatchmaker sharedMatchmaker] findMatchForRequest:request
withCompletionHandler:^(GKMatch *returnedMatch, NSError *error)
{
if (error) NSLog(@"match error: %@", error);
else if (returnedMatch != nil)
{
match = [returnedMatch retain];
match.delegate = self; // start!
}
}];
tempVC = [[UIViewController alloc] init];
GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];
if (mmvc != nil)
{
mmvc.matchmakerDelegate = self;
[[[CCDirector sharedDirector] openGLView] addSubview:tempVC.view];
[tempVC presentModalViewController:mmvc animated: YES];
}
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[mpView node] withColor:ccWHITE]];
}
按“立即播放”时出现此错误:
匹配错误:Error Domain=GKErrorDomain Code=2“请求的操作已被取消。” UserInfo=0x2248d0 {NSLocalizedDescription=请求的操作已被取消。}
然后它就停留在“寻找玩家......”视图上。