#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 до этого, это объясняет проблему.