Метка cocos2d-Menu отображается на слое, но не реагирует на прикосновения

Я не знаю, что не так, может быть, потому что я использую больше слоев?
Я думаю, что мой другой слой (скользящий подкласс сетки меню крадет прикосновения...) // // BGLayer.m // MainProject // // Создано NSSL1 30.08.12. // Copyright (c) 2012 MyCompanyName. Все права защищены. //

#import "BGLayer.h"
#import "GameManager.h"
#import "MainMenuLayer.h"

@interface BGLayer() 
-(void)displayBGMenu;
@end

@implementation BGLayer

-(void)backtomenu:(CCMenuItem*)itemPassedIn{
    CCLOG(@"why I can't reach here?");
    [[GameManager sharedGameManager] runSceneWithID:kMainMenuScene];} 
-(id)init {
    self = [super init];
    if (self != nil) {
        self.isTouchEnabled=YES;

        [self displayBGMenu];

    }
    return self;
}
    -(void)displayBGMenu{
        NSString* backLabelstring = [NSString stringWithFormat:@"Back to Menu"];
        CGSize screenSize = [CCDirector sharedDirector].winSize;
        //Shadow
        CCLabelTTF *backLabel = [CCLabelTTF labelWithString:backLabelstring fontName:@"Marker Felt" fontSize:32];
        backLabel.position=CGPointMake(screenSize.height*0.5f, screenSize.width*0.1f);
        backLabel.color = ccBLUE;

        CCMenuItem* backbtnitem=[CCMenuItemLabel itemWithLabel:backLabel target: self
                                                      selector:@selector(backtomenu:)];
        [backbtnitem setTag:21];
        menu = [CCMenu menuWithItems:backbtnitem ,nil];
        menu.position = CGPointMake((screenSize.width / 2), screenSize.height*0.1f);
        menu.tag = 200;
        [self addChild:menu z:20 tag:200];



    }



@end

1 ответ

У меня была проблема со слоями, глотающими прикосновения в том же типе класса, и чтобы избежать этого, кто-то предложил мне добавить это в метод init класса элемента кнопки сетки:

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:-1 swallowsTouches:YES];

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

Другие вопросы по тегам