2009-03-05 5 views
5

Использование cocos2d для разработки игр для iPhone, я смущен между Layer и Scene. Например, в моей простой игре есть несколько «страниц пользовательского интерфейса», например, главное меню, рекорды, игровые поля и т. Д.Layer vs Scene in Cocos2d для разработки игр для iPhone

Так что я должен использовать Layer или Scene для каждой «страницы пользовательского интерфейса» и почему?

ответ

4

Обзор SpritesDemo.m/.h, казалось бы, что они используют слой, а затем создавать новые сцены, приложив слой, а затем заменить сцену директора

@interface SpriteDemo : Layer 
@interface SpriteManual : SpriteDemo 

Затем код делает то следующее:

-(void)nextCallback:(id)sender { 
    Scene *s = [Scene node]; 
    [s add: [nextAction() node]]; 
    [[Director sharedDirector] replaceScene s]; 
} 

Так, короче говоря, ответ на ваш вопрос будет «как», вы используете слой, чтобы представить действительную «UI страницу», но прикрепить слой на новую сцену и заменить ток сцену режиссера.

+0

Вам почти необходимо переопределить функцию CCLayer, а не CCScene. Таким образом, вам не нужно переопределять функцию CCScene. – Emadpres

0

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

2

Это легко:

Они имеют CCLayer в этих примерах и метод +, сцены, что делает новую сцену и крепит слой на нем. Поскольку слой не является «страницей пользовательского интерфейса», как вы его назвали. Сцена - это «Страница пользовательского интерфейса».

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

Надеюсь, это поможет. Извините за мой английский. Не родной.

Смежные вопросы