游戏中心-多人连线

问题描述 投票:-1回答:1

我一直在尝试实现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]];
}

[按'立即播放'时,出现此错误:

匹配错误:错误域= GKErrorDomain代码= 2“所请求的操作已被取消。” UserInfo = 0x2248d0 {NSLocalizedDescription =请求的操作已被取消。}

然后,它只停留在“ Finding Players ...”视图中。

iphone objective-c ipad game-center
1个回答
1
投票

我从未使用GameCenter做过任何事,但也许我仍然可以提供帮助。当我得到错误

“请求的操作已已取消“

在反向地理编码器中,我已经知道,该应用没有时间执行请求。通过执行findMatchForRequest:会收到错误,因此可能您的请求变量未完全设置,请检查一下。您也可以尝试将NSLog()放在第一行(在块中),然后查看传递的变量returnedMatcherror

© www.soinside.com 2019 - 2024. All rights reserved.