我有一个CCLayer类,在其上添加来自另一个类的另一个CClayer对象。但是我只想在CCLayer对象被添加到整个屏幕时才添加带有框架的对象,并且我不能分别接触下面的层和添加的层。如何添加某个帧的cclayer对象??
发布于 2012-02-03 02:58:18
我不相信你可以‘框住’一个层,但是你可以‘框住’在层中处理触摸的地方,类似于:
- (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);
}发布于 2012-02-03 00:11:14
除非我忘记了什么,否则它应该像将不想接收触动的层的isTouchEnabled标志设置为NO一样简单。所以像这样的东西。
CCLayer* myTopLayer;
CCLayer* myBottomLayer;
myTopLayer.isTouchEnabled = YES;
myBottomLayer.isTouchEnabled = NO;现在,只有顶层应该接受触摸。你可以做的另一个技巧是将底层缩放到一个非常小的值,这样用户就不会接触到它。就像..。
myBottomLayer.scale = 0.01f;然后,当你准备好的时候,把它缩回到1.0。
https://stackoverflow.com/questions/9112743
复制相似问题