Работа с CCMenu в cocos2d

Привет, ребята!
Я пытаюсь работать с классом CCMenu. У меня есть этот метод:

    -(void)showMenuItems {
    CGSize size = [[CCDirector sharedDirector] winSize];
    [CCMenuItemFont setFontSize:28];
    CCMenuItem *runAlertItem = [CCMenuItemFont itemWithString:@"Show Alert" target:self selector:@selector(showAlert)];
    CCMenuItem *showTwitterPageItem = [CCMenuItemFont itemWithString:@"Twitter" target:self selector:@selector(showWebView)];
    CCMenuItem *showApplePageItem = [CCMenuItemFont itemWithString:@"Apple" block:^(id sender) {
        webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 480.0, 320.0)];
        [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http:/www.apple.com"]]];
        [[[CCDirector sharedDirector] view] addSubview:webView];
        [self scheduleOnce:@selector(hideWebView) delay:10];
    }];

    mainMenu = [CCMenu menuWithItems:runAlertItem, showTwitterPageItem, showApplePageItem, nil];
    [mainMenu alignItemsVerticallyWithPadding:10];
    mainMenu.position = CGPointMake(size.width / 2, size.height / 2);
    [self addChild:mainMenu];
}

Теперь я хотел бы вызвать этот метод так:

    [self scheduleOnce:@selector(showMenuItems) delay:71];

К сожалению, меню не появляется.
Что я делаю не так?

Заранее спасибо!


person Anatoliy Gatt    schedule 22.05.2012    source источник


Ответы (1)


Я запустил приведенный выше код в своей системе, и он отлично работает.
Поскольку вы используете селектор scheduleOnce для отображения меню, оно появится через 71 секунду.

 [self scheduleOnce:@selector(showMenuItems) delay:71];
person Vaquita    schedule 22.05.2012
comment
точно, когда я запускал без этого метода только с [self showMenuItems], он работает нормально, но он появляется в начале, мне нужно, чтобы он появлялся при остановке анимации. - person Anatoliy Gatt; 22.05.2012
comment
но он не появляется через 71 секунду. - person Anatoliy Gatt; 22.05.2012
comment
@AnatoliyGatt Я думаю, что ошибка не связана с этим кодом. Я только что добавил этот код в новый проект cocos2d, и меню отобразится через 71 секунду. - person Vaquita; 22.05.2012
comment
@AnatoliyGatt У вас есть какие-либо другие элементы на экране, кроме меню? Если в сцене более одного элемента, будет работать установка z-индекса каждого элемента. [сам addChild:mainMenu z:20]; - person Vaquita; 22.05.2012
comment
Да, я проверил, значит, это моя ошибка. Спасибо. Я бы решил это. - person Anatoliy Gatt; 22.05.2012