Cocos2d, добавляющий фоновое изображение к слою?

Я только что закончил читать часть 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 опции, и что лучший путь состоит в том, чтобы установить фон для слоя?. Любая справка будет значительно цениться.

25
задан kiamlaluno 29 September 2012 в 23:24
поделиться

2 ответа

Необязательно иметь слой, но они удобны. Думайте о слоях как о способе группировки спрайтов (как визуально, так и организационно). Вы можете захотеть, чтобы ваши фоновые изображения были сгруппированы как слой, а все враги в игре - как другой слой. Это позволяет более чисто работать с каждым набором, например, можно удалить определенный слой вместо того, чтобы находить всех врагов и удалять их.

Если это поможет, играйте со слоями в Photoshop или в программу для редактирования графики. Слои в cocos2d работают аналогично.

Для простой сцены добавление фона к слою или к сцене не будет иметь большого значения. Но это не займет много времени, прежде чем выгода от слоёв начнёт проявляться.

25
ответ дан 28 November 2019 в 21:25
поделиться

Также слои управляют порядком рисования (сверх любого межслойного z порядка).

В geoSpark, например, у меня есть фоновый слой, слой искр, слой UI и т.д. (Упрощенный). Но это позволяет мне быть уверенным, что мой пользовательский интерфейс всегда выше любого игрового материала (слоя искр) и всего, что находится выше фона.

Если ваша игра делает только аддитивный рендеринг, порядок отрисовки не будет иметь большого значения. :)

-- Дэвид

.
8
ответ дан 28 November 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: