2012-02-02 51 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