2013-10-07 5 views
0

Простите меня, если это звучит немного тривиально. В моей игре несколько классов слоев используют один и тот же лист спрайтов. Я хочу, чтобы не объявлять одни и те же узлы пакета в каждом классе класса. Как я могу это достичь?несколько слоев с использованием одного и того же листа спрайтов

ответ

0

Вы не можете. У узла может быть только один родитель. Если вы создадите пакетный узел и добавите его на один слой, вы не сможете добавить его в другой. Если вы передадите ссылку на пакетный узел вокруг того, что будет работать, но это сделает слои довольно бессмысленными, потому что спрайты будут дочерними элементами слоя, к которому добавлен пакетный узел.

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

Чтобы создать спрайт с пустой текстурой, используйте метод initWithTexture: rect: и используйте CGRectZero. Альтернативно, в случае, если это больше не работает, вы также можете использовать очень маленький прямоугольник и установить непрозрачность спрайта на 0. Установка видимого значения НЕТ также может работать, в зависимости от того, распространяется ли видимость в спрайт-спрайтах или нет.

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