Cocos2D сцены против слоев - PullRequest
1 голос
/ 14 марта 2012

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

Больше всего меня беспокоит то, что производительность / память будут падать из-за большого количества изображений на экране (игровой слой может содержать до 100 спрайтов и присутствует всегда - если перед игровым слоем есть слой, то игровой слой приостанавливается и скрывается).

Настройка игровой сцены:

  • игровой слой
  • слой меню
  • динамический слой (слой, который добавляется при нажатии какой-либо кнопки)

Если бы я изменил динамические слои в сцену, было бы что-то другое? (вместо создания нового слоя я бы просто создал новую сцену и поместил ее в стек сцены, не убивая игровой слой). Эти два подхода одинаковы или есть какие-то ключевые различия (в отношении памяти / производительности)?

Ответы [ 2 ]

0 голосов
/ 16 марта 2012

нет, вы должны использовать один слой для сцены. и используйте ccsprite вместо подслоя. Если вы поместите всю свою сцену в shareDirector. это будет медленный и возможный крах.

0 голосов
/ 14 марта 2012

Я предлагаю использовать pushScene / popScene в этом случае.Это избавит вас от многих проблем, например, фоновая сцена автоматически будет приостановлена.

Потребление памяти должно быть примерно таким же.Почти вся используемая игрой память - это текстурная память и аудиобуферы, поэтому не беспокойтесь о том, сколько спрайтов у вас может быть в памяти, а о том, сколько разных текстур они будут использовать.

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