当触摸播放按钮游戏进入另一个场景时,我有带按钮的菜单,但触摸在那里不起作用我正在写 self.isToucheEnabled=YES; 在 init 方法中添加 onEnter 方法 [[CCTouchDispatcher sharedDispatcher] setDispatchEvents:YES];
但这不起作用请帮助我为什么可以启用触摸
当触摸播放按钮游戏进入另一个场景时,我有带按钮的菜单,但触摸在那里不起作用我正在写 self.isToucheEnabled=YES; 在 init 方法中添加 onEnter 方法 [[CCTouchDispatcher sharedDispatcher] setDispatchEvents:YES];
但这不起作用请帮助我为什么可以启用触摸
您必须输入以下代码:
-(void) onEnter {
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
}
在要启用 TouchDispatcher 的场景中,然后在同一场景中确保输入以下内容:
-(void) onExit {
[[CCTouchDispatcher sharedDispatcher] removeDelegate: self];
}
并且触摸应该在您拥有上述代码的每个场景中注册。
在图层中使用:
-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
不是:
-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
这是一个如何在 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];
如果您需要更多帮助,请提供您用于创建菜单的代码。
You also have to add UIGestureRecognizerDelegate interface in your CCLayer in your header!
e.g.:
@interface YourScene : CCLayer <UIGestureRecognizerDelegate> {
}