Зачем мне нужна локальная группа: вставка (объект) с классом директора короны? - PullRequest
1 голос
/ 26 января 2012

Кажется, я не могу обернуться вокруг команды localGroup: insert, которая необходима при использовании класса Director.

Если я создаю свой объект с чем-то вроде:

local btnBegin = display.newImage( "images/btn_begin.png", (display.viewableContentWidth/2)-200, display.contentHeight * .7 )

Изображение будет отлично отображаться в сцене, даже если я никогда не сделаю

localGroup:insert( btnBegin )

Я бы подумал, что localGroup: insert будет необходим для того, чтобы все компоненты сцены могли быть сгруппированы, чтобы получить их для отображения, но разве точка

function new()

в начале каждой сцены? По-моему, я вижу, что создание всех моих объектов внутри функции уже делает их локальными по отношению к файлу сцены. Что выполняет localGroup: insert?

Ответы [ 2 ]

1 голос
/ 30 апреля 2012

Когда вы делаете display.newImage (...) , это добавляет экранный объект в основную сцену. Как сказал tomdemuyt, это может быть полезно для HUD или другой графики, которая появляется между сценами.

Этап также содержит вашу сцену, здесь определено localGroup . Чтобы добавить объект в вашу сцену, вы должны вставить его в localGroup.

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

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

  1. сцена ИМЕЕТ A сцена меню
  2. сцена меню ИМЕЕТ A кнопка

Имеет больше смысла, чем:

  1. сцена ИМЕЕТ сцена меню
  2. сцена ИМЕЕТ кнопку
1 голос
/ 26 января 2012

Насколько я понимаю, у вас может быть HUD, который вы добавляете прямо на экран, и localGroup, содержащая ваш уровень. Затем, если вы измените уровень, вы только удалите уровень, содержащийся в localGroup, и сохраните элементы HUD, которые вы поместили, прямо на экране.

...