Не удалось установить блок выбора для CCButton на слое.

Поэтому я использую sprite builder, objective-c и Xcode. В построителе спрайтов я создал слой, который выглядит так:

Где кнопка

а затем в коде я добавляю его в узел содержимого сцены, где я хочу, чтобы он отображался. Я хотел придать ему своего рода эффект «всплывающего окна», когда блок (уровень) завершен, а затем, когда был нажат «Продолжить», он снова будет скрыт.

Проблема в том, что когда я загружаю его из CCBReader, я получаю сообщение о том, что "Failed to set selector/target block for "continueBlock""

Я не уверен, что я делаю неправильно, так как я пишу метод «continueBlock» в классе сцены, где я загрузил слой в первую очередь.

@implementation SceneGeneral{
    CCNode *__contentNode;
    CCNode *nextBlock;
}

-(void)didLoadFromCCB{
    self.userInteractionEnabled=TRUE;
    nextBlock = [CCBReader load: @"NextBlock"];
    [__contentNode addChild: nextBlock];
    nextBlock.visible=NO;
}

-(void)continueBlock{
    nextBlock.visible=NO;}
-(void)someMethod{
   if(some condition){
      nextBlock.visible=YES;
      // i know that this method is working because the layer does pop up when the condition is met.}
}

когда слой появляется на нужной сцене


person Daniela Carrasco    schedule 22.06.2015    source источник


Ответы (1)


Возможным решением было бы установить целью кнопки «Владелец» (вместо «Корень документа») на вкладке «Соединения кода элемента» с правой стороны в Spritebuilder.

Затем загрузите сцену всплывающего окна с помощью метода load:owner CCBReader, например:

nextBlock = [CCBReader load: @"NextBlock" owner:self];

Это должно сработать :)

person Pontus Armini    schedule 22.06.2015