我有一个CCLayer类,在其上我添加了另一个类的另一个CClayer对象。但是,我想添加CCLayer对象时,只有当它被添加到整个屏幕,我不能触及下层的图层,也没有添加图层。我如何添加cclayer对象与一个特定的框架?在另一个CCLayer的顶部添加一个框架的CClayer?
0
A
回答
0
我不相信你可以“框架”层,但是你可以“框架”,其中接触将在层处理,类似的东西:
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{
if (!visible_ || !_enabled) {
return NO;
}
CGPoint loc = [touch locationInView:touch.view];
loc = [[CCDirector sharedDirector] convertToGL:loc];
return [self containsPoint:loc]);
}
- (BOOL) containsPoint:(CGPoint)loc {
loc = [self convertToNodeSpace:loc];
CGRect rect = CGRectMake('WHATEVER FRAME YOU WANT TOUCHES FOR');
return CGRectContainsPoint(rect, loc);
}
0
除非我忘记了一些东西,它应该像设置图层的isTouchEnabled标志一样简单,您不希望接收该图层触及NO。所以像...
CCLayer* myTopLayer;
CCLayer* myBottomLayer;
myTopLayer.isTouchEnabled = YES;
myBottomLayer.isTouchEnabled = NO;
现在只有顶层应该接受接触。您可以做的另一个技巧是将底层缩放到一个非常小的值,因此用户无法触摸它。类似...
myBottomLayer.scale = 0.01f;
然后在您准备好时缩放回1.0。
+0
我想收到的层上的触摸,但仅限于特定区域。 – hemant 2012-02-03 06:21:44
太糟糕了,无法将CClayer添加到特定帧 – hemant 2012-02-03 06:21:51