Cocos2d: лучше иметь один слой и добавлять узлы или лучше иметь несколько слоев? - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть эта маленькая игра, и она состоит из основного игрового экрана и множества «окон», которые появляются на экране в верхней части основного экрана. В большинстве случаев это всего лишь одно окно [которое занимает более 90% экрана], иногда окно открывает другое. Прямо сейчас мой главный экран - это слой, а каждое окно - это CCNode, который я добавляю и удаляю из слоя. Я на самом деле не использую распознавание касания на своих узлах Если я хочу что-то осязаемое, это будет CCMenu. У меня есть много добавленных CCSprites, если это имеет какое-либо отношение. Мне интересно, если это хороший [производительность мудрый] способ пойти? Или, другими словами, если есть причина для изменения того, что я должен сказать, чтобы каждое окно было слоем.

1 Ответ

4 голосов
/ 07 сентября 2011

Насколько мне известно, два наиболее важных преимущества использования нескольких слоев вместо одного - это обнаружение касания и z-упорядочение:

  1. обнаружение касания :Использование нескольких слоев упрощает использование логики обнаружения касания, которая использует иерархию слоев, поскольку механизм cocos2d передает любое событие касания слоям один за другим на основе иерархии.

  2. z-ordering : Для сценариев, где определенные спрайты всегда находятся перед другими спрайтами, использование нескольких слоев значительно упрощает применение z-упорядочения, вместо того, чтобы использовать параметр zOrder при использовании одного слоя.

ИМО не так много различий в производительности между использованием одного слоя и нескольких слоев, , но , если на экране одновременно много спрайтов, особенно если их многоиз повторяющихся спрайтов, я бы настоятельно рекомендовал использовать CCSpriteBatchNode (ранее известный как Texture Atlas или CCSpriteSheet) который является рекомендуемым методом cocos2d улучшения производительности игры при работе с большим количеством спрайтов, поэтому я бы сказал, что один слой с узлами пакетных спрайтов лучше с точки зрения производительности, чем несколько слоев с добавленными отдельными спрайтаминепосредственно к слоям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...