Инициализация дочернего CCNode на родительский CCNode

#ios #xcode #cocos2d-iphone #spritebuilder #ccnode

#iOS #xcode — код #cocos2d-iphone #spritebuilder #ccnode

Вопрос:

Я работаю с SpriteBuilder и Cocos2d над созданием простой игры, и я хочу отобразить сообщение об ошибке внутри оператора if.

Моя проблема заключается в попытке инициализировать CCNode, который я создал в SpriteBuilder, чтобы он отображался на экране.

Я попытался создать слой CCNode и просто создать все объекты с помощью SpriteBuilder, но не был точно уверен, как я должен был заставить это отображаться на экране, поскольку то, что я пробовал, не работало правильно. Я попробовал просто использовать [self addChild:errorLayer] инструкцию if, и она привела к сбою моего приложения с сообщением об ошибке Argument must be non-nil , поэтому я установил точку останова и errorLayer она равна нулю, но я не уверен, как сделать ее отличной от нуля.

Я также попытался создать CCNode программно, но когда был запущен оператор if, он ничего не отображал на экране. Вот код, который я пробовал:

     CCNode *errorLayer = [[CCNode alloc] init];
    [errorLayer setContentSize:CGSizeMake(50, 100)];
    [errorLayer setColor:[CCColor redColor]];
    [self addChild:errorLayer];
 

Кто-нибудь может дать мне несколько советов, как заставить это работать? Спасибо.

Основная сцена, которая является сценой, в которой вызывается приведенный выше код, инициализируется в AppController следующим образом

 - (CCScene*) startScene
{
    return [CCBReader loadAsScene:@"MainScene"];
}
 

Комментарии:

1. Опубликуйте код, как вы загружаете ccb. Приведенный выше код верен, но это просто CCNode, который ничего не рисует (цвет игнорируется), в отличие, скажем, от узла sprite или label. Когда вы загружаете ccbreader:@»папка / файл», обязательно а) включите папки в строку и б) опустите расширение (или используйте .ccbi, а не .ccb)

2. @LearnCocos2D Я отредактировал OP, чтобы включить способ загрузки сцены, содержащей приведенный выше код. Должен ли я использовать CCBReader для загрузки слоя ошибок перед добавлением его в качестве дочернего элемента?

3. Да, если его еще нет в MainScene.ccb, вам нужно загрузить: и addChild: the errorlayer.ccb . Это код загрузки, о котором я просил, но если вы не загружали ccb до этого, это объясняет проблему.