Я только что закончил читать часть cocos2d документации, и насколько я понимаю для добавления фонового изображения к слою, как который необходимо сделать что-то:
Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
[layer addChild:bg z:0];
Allthough до моего тестирования идет, можно просто непосредственно добавить спрайт к сцене как это:
@implementation IntroScene
- (id) init {
self = [super init];
if (self != nil) {
Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
[bg setPosition:ccp(240, 160)];
[self addChild:bg z:0];
[self addChild:[MenuLayer node] z:1];
}
return self;
}
Каково различие между этим 2 опции, и что лучший путь состоит в том, чтобы установить фон для слоя?. Любая справка будет значительно цениться.
Необязательно иметь слой, но они удобны. Думайте о слоях как о способе группировки спрайтов (как визуально, так и организационно). Вы можете захотеть, чтобы ваши фоновые изображения были сгруппированы как слой, а все враги в игре - как другой слой. Это позволяет более чисто работать с каждым набором, например, можно удалить определенный слой вместо того, чтобы находить всех врагов и удалять их.
Если это поможет, играйте со слоями в Photoshop или в программу для редактирования графики. Слои в cocos2d работают аналогично.
Для простой сцены добавление фона к слою или к сцене не будет иметь большого значения. Но это не займет много времени, прежде чем выгода от слоёв начнёт проявляться.
Также слои управляют порядком рисования (сверх любого межслойного z порядка).
В geoSpark, например, у меня есть фоновый слой, слой искр, слой UI и т.д. (Упрощенный). Но это позволяет мне быть уверенным, что мой пользовательский интерфейс всегда выше любого игрового материала (слоя искр) и всего, что находится выше фона.
Если ваша игра делает только аддитивный рендеринг, порядок отрисовки не будет иметь большого значения. :)
-- Дэвид
.