Cocos2D и таблица лидеров - PullRequest
       8

Cocos2D и таблица лидеров

5 голосов
/ 24 февраля 2012

Я имею дело с приложением Cocos2D для iPhone с таблицей лидеров Game Center.В этом приложении пользователь должен рисовать линии в ландшафтном режиме (iPhone в горизонтальном положении).Тогда бывает, что касание может начаться за пределами экрана (в левой части рядом с микрофоном) и продолжаться внутри экрана.Приложение правильно начинает рисовать вещи, как только палец входит в рамки экрана.Однако, если я показываю вид с таблицей лидеров (который на самом деле правильно изображен) и возвращаюсь к игре, приложение перестает обрабатывать касания, которые начинаются за пределами экрана.Фактически он перестает обрабатывать только те, которые начинаются в верхней части экрана, как если бы в верхней части экрана была линия пикселей, которые не учитываются.

Я создал доску лидеров следующим образом:

- (void) showLeaderboard
{
   GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != nil){
    tempVC=[[UIViewController alloc] init] ;
    leaderboardController.leaderboardDelegate = self;
    [[[CCDirector sharedDirector] openGLView] addSubview:tempVC.view];

    [tempVC presentModalViewController:leaderboardController animated:YES];
    tempVC.view.transform = CGAffineTransformMakeRotation(CC_DEGREES_TO_RADIANS(0.0f));
    tempVC.view.bounds = CGRectMake(0, 0, 480, 320);
    tempVC.view.center = CGPointMake(240, 160);

    [leaderboardController release];
}
}

и выпустил ее так:

-(void) leaderboardViewControllerDidFinish: (GKLeaderboardViewController *) viewController{
[tempVC dismissModalViewControllerAnimated:YES];
[tempVC.view.superview removeFromSuperview];
[tempVC.view removeFromSuperview];

[tempVC release];


}

1 Ответ

1 голос
/ 01 марта 2012

Что ж, ваша проблема звучит немного неприятно, и все, что я могу предоставить, - это предположить, где может быть проблема ..

У меня есть игра Cocos2d с интегрированными таблицами лидеров, и штрихи работают отличноИтак, позвольте мне рассказать вам о том, как я добавляю таблицу лидеров viewController, и вы можете попробовать это:

Примечание: Как правило, лучше использовать элементы UIKit вcocos2d с использованием RootViewController, добавлено в v0.99.5.

//Action method invoked upon pressing the "Show LeaderBoards button"
-(void)showLeaderboardButtonClicked {
    [gameCenterHandler showLeaderboard];
}

//Inside the GameCenter Handler:
-(void) showLeaderboard {
    if (isGameCenterAvailable == NO) {
        return;
    } else if (![[GKLocalPlayer localPlayer] isAuthenticated]) {
        [self authenticateLocalPlayer];
    } else {
        GKLeaderboardViewController* leaderboardVC = [[[GKLeaderboardViewController alloc] init] autorelease];
        if (leaderboardVC != nil) {
            leaderboardVC.leaderboardDelegate = self;
            [rootVC presentModalViewController:leaderboardVC animated:YES];
        }
}

-(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController*)viewController {
    [rootVC dismissModalViewControllerAnimated:YES];
}

Где rootVC в AppDelegate.h:

    RootViewController  *viewController;
...