游戏中心 - 连接多人游戏

时间:2010-12-31 13:07:35

标签: iphone objective-c ipad game-center

我一直在努力实现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所以如果你能联系,那太好了!

1 个答案:

答案 0 :(得分:1)

我从来没有对GameCenter做过什么,但也许我可以提供帮助。当我收到错误时

  

“请求的操作已经完成   取消“

在反向地理编码器中我已经发现,应用程序没有时间执行请求。 您通过执行findMatchForRequest:得到错误,因此您的请求变量可能未完全设置,请检查。您还可以尝试将NSLog()放在第一行(在块中)并查看传递的变量returnedMatcherror