Вопрос

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

Поэтому я должен использовать слой или сцену для каждой "страницы пользовательского интерфейса" и почему?

Это было полезно?

Решение

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

@interface SpriteDemo : Layer
@interface SpriteManual : SpriteDemo

Затем код выполняет следующие действия:

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

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

Другие советы

Это просто:

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top