Cocos2D включить сенсорный во второй сцене - PullRequest
1 голос
/ 03 августа 2011

У меня есть меню с кнопками, когда при нажатии кнопки Play игра переходит в другую сцену, но Touch там не работают, я пишу self.isToucheEnabled = YES;в методе init и добавьте в метод onEnter [[CCTouchDispatcher sharedDispatcher] setDispatchEvents: YES];

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

Ответы [ 4 ]

2 голосов
/ 05 августа 2011

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

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

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

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

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

0 голосов
/ 28 ноября 2012

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

- (void) ccTouchesBegan: (NSSet *) касается события EventEvent: (UIEvent *)

Не:

- (BOOL)ccTouchBegan: (UITouch *) сенсорный с событием: (UIEvent *) событие

0 голосов
/ 31 октября 2012

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

например:

@interface YourScene : CCLayer <UIGestureRecognizerDelegate>  {
     }
0 голосов
/ 03 августа 2011

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

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];

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

...