Добавить CClayer с рамкой поверх другого CCLayer? - PullRequest
0 голосов
/ 02 февраля 2012

У меня есть класс CCLayer, поверх которого я добавляю еще один объект CClayer из другого класса.Но я хочу добавить объект CCLayer с рамкой, только когда он добавляется на весь экран, и я не могу раздельно касаться слоя под ним и добавленного слоя.Как я могу добавить объект cclayer с определенным кадром ??

Ответы [ 2 ]

0 голосов
/ 02 февраля 2012

Я не верю, что вы можете «обрамить» слой, однако вы можете «обрамить», где касания будут обрабатываться в слое, что-то похожее на:

- (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 голосов
/ 02 февраля 2012

Если я не забываю что-то, это должно быть так же просто, как установить флаг isTouchEnabled для слоя, который вы не хотите получать, прикасается к NO. Так что-то вроде ...

CCLayer* myTopLayer;
CCLayer* myBottomLayer;

myTopLayer.isTouchEnabled = YES;
myBottomLayer.isTouchEnabled = NO;

Теперь только верхний слой должен получать прикосновения. Другой трюк, который вы можете сделать, - это масштабировать нижний слой до очень маленького значения, чтобы пользователь не мог его коснуться. Что-то вроде ...

myBottomLayer.scale = 0.01f;

Затем уменьшите его до 1,0, когда будете готовы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...