在CClayer的 onEnter方法中将注册触摸代理:
if (isTouchEnabled_)
[self registerWithTouchDispatcher];
所以在CClayer中需要实现 registerWithTouchDispatcher方法:
- (void)registerWithTouchDispatcher{
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
}
priority代表优先级,数字越小优先级越高。
然后在CCLayer中实现以下触摸接口:
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event;
- (void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event;
- (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event;
在ccTouchBegan中返回 YES ,当前CClayer将会捕捉该事件,其它层将不会在继续处理。你可以试试 当你返回 NO ccTouchMoved方法是不会收到事件的!