2012-02-02 103 views
0

我有一个CCLayer类,在其上我添加了另一个类的另一个CClayer对象。但是,我想添加CCLayer对象时,只有当它被添加到整个屏幕,我不能触及下层的图层,也没有添加图层。我如何添加cclayer对象与一个特定的框架?在另一个CCLayer的顶部添加一个框架的CClayer?

回答

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

太糟糕了,无法将CClayer添加到特定帧 – hemant 2012-02-03 06:21:51

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