Iphone 在另一个CClayer上添加一个框架的CClayer?
我有一个CCLayer类,在它上面我从另一个类添加了另一个CCLayer对象。但是我只想在将CCLayer对象添加到整个屏幕时添加一个帧,我无法单独接触下面的层和添加的层。如何添加具有特定帧的cclayer对象???除非我忘记了一些事情,它应该像为不希望接收触摸的层设置isTouchEnabled标志一样简单。因此类似于Iphone 在另一个CClayer上添加一个框架的CClayer?,iphone,ios,cocos2d-iphone,Iphone,Ios,Cocos2d Iphone,我有一个CCLayer类,在它上面我从另一个类添加了另一个CCLayer对象。但是我只想在将CCLayer对象添加到整个屏幕时添加一个帧,我无法单独接触下面的层和添加的层。如何添加具有特定帧的cclayer对象???除非我忘记了一些事情,它应该像为不希望接收触摸的层设置isTouchEnabled标志一样简单。因此类似于 CCLayer* myTopLayer; CCLayer* myBottomLayer; myTopLayer.isTouchEnabled = YES; myBottomL
CCLayer* myTopLayer;
CCLayer* myBottomLayer;
myTopLayer.isTouchEnabled = YES;
myBottomLayer.isTouchEnabled = NO;
myBottomLayer.scale = 0.01f;
现在只有最上面的一层应该接受触摸。你可以做的另一个诀窍是将底层缩放到一个非常小的值,这样用户就不会碰到它。类似于
CCLayer* myTopLayer;
CCLayer* myBottomLayer;
myTopLayer.isTouchEnabled = YES;
myBottomLayer.isTouchEnabled = NO;
myBottomLayer.scale = 0.01f;
准备好后,将其缩放回1.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);
}
太糟糕了,无法添加具有特定帧的CClayer