Game Center - Подключение для мультиплеера - PullRequest
0 голосов
/ 31 декабря 2010

Я уже несколько дней пытаюсь реализовать многопользовательский режим 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]];
}

При нажатии «Play Now» я получаю эту ошибку:

ошибка сопоставления: Ошибка домена = код GKErrorDomain = 2 "Запрошенная операция была отменена." UserInfo = 0x2248d0 {NSLocalizedDescription = Запрошенная операция была отменена.}

Тогда он просто остается в представлении «Поиск игроков ...».

Извините, я понимаю, что не работает stackoverflow, только у меня было много проблем, и перечислить их было бы как эссе. Я просто не думаю, что я полностью осознаю функциональность игрового центра.

Если бы кто-то мог потратить 5-10 минут на просмотр моего кода со мной по скайпу, ichat или чему-то подобному, я был бы очень благодарен за дополнительный опыт.

Вы будете зачислены в последнем обновлении за любую помощь! ;)

Только 17 лет, у меня нет более широкого понимания и опыта, который есть у многих из вас, и вполне возможно, что я столкнулся с явным препятствием.

Надеюсь, вы поможете мне. Мой скайп / ichat зовут: kahanejosh, а адрес электронной почты kahanejosh@gmail.com, так что, если вы можете связаться, то отлично!

1 Ответ

1 голос
/ 31 декабря 2010

Я никогда ничего не делал с GameCenter, но, может быть, я все равно смогу помочь.Когда я получаю ошибку

«Запрошенная операция была отменена»

в обратном геокодере, я выяснил, что у приложения не было времени для выполнения запроса,Вы получаете ошибку, выполняя findMatchForRequest:, поэтому, возможно, ваша переменная запроса не установлена ​​полностью, проверьте это.Вы также можете попытаться поставить NSLog() в первой строке (в блоке) и посмотреть переданные переменные returnedMatch и error

...