cocos2d-x CSLoader как загружать только выбранные узлы

Я ищу документы на сайте cocos2dx и в Google, но я не смог их найти. Проблема в том, что когда я загружаю файл csb из cocostudio, он загружает все узлы, его ресурсы и т. Д. … это делает память текстур настолько высокой. Я хотел бы знать, есть ли способ или решение для загрузки только выбранных узлов из файла сцены cocostudio.

Спасибо!

0

Решение

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

В качестве примера. В моей основной сцене у меня есть поднос инвентаря, область здания и панель пользовательских кнопок. Я разделил все это на отдельные слои. InventoryTray.csb, BuildingArea.csb, ButtonPanel.csb и разделите их все по коду, по одному объекту для загрузки каждого макета. В целом мой код более удобен в обслуживании, поскольку в каждом классе всего несколько строк кода.

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

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

0

Другие решения

Вы можете попробовать получить компонент .csb:

auto node = CSLoader::createNode("MainScene/MainScene.csb");
node->getComponent("Star_GameButton")->setEnabled(false);

Вам нужно название вашего компонента, который находится на porcoties на Cocos Studio

0