我一直在努力实现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]];
}
按'立即播放'时出现此错误:
匹配错误:错误Domain = GKErrorDomain Code = 2“请求的操作已被取消。” UserInfo = 0x2248d0 {NSLocalizedDescription =请求的操作已被取消。}
然后它只停留在“寻找玩家......”视图上。
对不起,我确实理解不是stackoverflow是如何工作的,只是我遇到了很多问题,列出它们就像是一篇文章。我只是不认为我非常关注游戏中心的功能。
如果有人可以花5到10分钟的时间在Skype上查看我的代码,ichat或类似的东西,我会非常感谢额外的体验。
您将获得最新更新,以获得任何帮助! ;)
只有17岁,我没有更多的理解和经验,很多人都有可能在明显的障碍中绊倒。
希望你能帮助我。我的skype / ichat名称是:kahanejosh和电子邮件是kahanejosh@gmail.com所以如果你能联系,那太好了!
答案 0 :(得分:1)
我从来没有对GameCenter做过什么,但也许我可以提供帮助。当我收到错误时
“请求的操作已经完成 取消“
在反向地理编码器中我已经发现,应用程序没有时间执行请求。
您通过执行findMatchForRequest:
得到错误,因此您的请求变量可能未完全设置,请检查。您还可以尝试将NSLog()
放在第一行(在块中)并查看传递的变量returnedMatch
和error