Подтвердить что ты не робот

Cocos2d добавляет фоновое изображение в слой?

Я только что закончил читать некоторые из документации cocos2d, и насколько я понимаю, чтобы добавить фоновое изображение к слою, вы должны сделать что-то вроде:

Sprite * bg = [Sprite spriteWithFile:@"Background.png"];
[layer addChild:bg z:0];

Несмотря на то, что, насколько мне известно, вы можете просто добавить спрайт на сцену следующим образом:

@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;

}

В чем разница между этими двумя параметрами и каков наилучший способ установить фон для слоя?. Любая помощь будет принята с благодарностью.

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

- Дэвид

Ответ 3

сцена - доска, слой - это страница... новости написаны на странице, но, если вы хотите, вы можете писать на доске. Если вы хотите удалить все новые.

Ответ 4

В cocos2d мы можем добавить любой node на любой node. Но это зависит от уровня иерархии.

Вы можете добавить слои на сцене. Если вы хотите иметь такое же свойство или искать все слои, добавляемые в CCScene, вы можете добавить их в CCScene (как во втором случае). но если вы хотите иметь разные функции на каждом слое, добавьте их в CCLayer.

CCLayer предназначен для группировки набора узлов/спрайтов для какой-либо цели. Например, вы можете добавить слой, который включает опции после паузы в игре, или слой HUD для отображения som kind всегда на экране вместе с некоторым прокручивающим слоем (например, в некоторых играх с прокруткой).

Наконец, вы можете даже CCNode на CCScene, слой на другом уровне и даже CCNode на CCSprite. Но порядок рисования в графическом контексте в cocos2d отличается.

Надеюсь, у вас есть разница.

Удачи!