cocos2d включает сенсорное управление во второй сцене

у меня есть меню с кнопками при касании кнопки воспроизведения игра переходит в другую сцену но тач там не работает я пишу self.isToucheEnabled=YES; в методе инициализации и добавьте в метод onEnter [[CCTouchDispatcher sharedDispatcher] setDispatchEvents:YES];

но это не работает, пожалуйста, помогите, почему я могу включить сенсорный


person Hayk    schedule 03.08.2011    source источник
comment
Предоставьте свой код. И задайте свой вопрос конкретно. Кнопка меню не работает или слой не реагирует на прикосновения??   -  person russell    schedule 03.08.2011
comment
мой слой не реагирует на прикосновения   -  person Hayk    schedule 03.08.2011


Ответы (4)


Вы должны поставить следующий код:

-(void) onEnter { [[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES]; }

внутри сцены, на которой вы хотите включить TouchDispatcher, затем в той же сцене убедитесь, что вы вводите это:

-(void) onExit { [[CCTouchDispatcher sharedDispatcher] removeDelegate: self]; }

и прикосновение должно регистрироваться в каждой сцене, в которой у вас есть приведенный выше код.

person darvish    schedule 04.08.2011

Это пример того, как вы определяете меню в cocos2d (источник):

CCMenuItem *starMenuItem = [CCMenuItemImage  temFromNormalImage:@"ButtonStar.jpg" selectedImage:@"ButtonStarSel.jpg" target:self selector:@selector(starButtonTapped:)];
starMenuItem.position = ccp(60, 60);
CCMenu *starMenu = [CCMenu menuWithItems:starMenuItem, nil];
starMenu.position = CGPointZero;
[self addChild:starMenu];

Если вам нужна дополнительная помощь, предоставьте код, который вы используете для создания меню.

person sergio    schedule 03.08.2011
comment
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{ NSLog(@touch); вернуть ДА; } у меня есть этот метод, но он не работает. - person Hayk; 03.08.2011

Вы также должны добавить интерфейс UIGestureRecognizerDelegate в свой CCLayer в своем заголовке!

e.g.:

@interface YourScene : CCLayer <UIGestureRecognizerDelegate>  {
     }
person knagode    schedule 31.10.2012

В слое используйте:

-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

Нет:

-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)событие

person Josh    schedule 28.11.2012