【问题标题】:cocos2d-x CSLoader how to load selected nodes onlycocos2d-x CSLoader 如何只加载选中的节点
【发布时间】:2015-07-30 08:36:02
【问题描述】:

我正在 cocos2dx 网站和谷歌上搜索文档,但我找不到。问题是,当我从 cocostudio 加载 csb 文件时,它会加载所有节点及其资源等......它使纹理内存如此之高。我想知道是否有一种方法或解决方案可以从 cocostudio 的场景文件中仅加载选定的节点。

谢谢!

【问题讨论】:

    标签: c++ memory cocos2d-x cocostudio


    【解决方案1】:

    我遇到了同样的问题,它源于试图让一个场景包含你需要的一切。我决定将我的组件拆分成层,然后在需要时由它们自己的组件加载。

    举个例子。在我的主场景中,我有一个库存托盘、一个建筑区域和一个自定义按钮面板。我将所有这些分成单独的层。 InventoryTray.csb、BuildingArea.csb、ButtonPanel.csb 并让它们都在代码中分开,一个对象来加载每个布局。总的来说,我的代码更易于维护,因为每个类只有几行代码。

    这样我可以加载我的库存托盘,而不是加载我的按钮面板,直到用户“需要”与之交互。可能包含可能占用更多纹理内存的动画和资产的精美暂停菜单也是如此。将其创建为单独的图层并在需要时加载。

    我希望这会有所帮助,除了我的菜单系统之外,我从来没有发现 cocostudio 场景有用,因为我(到目前为止)构建的每个菜单场景都是独立的。

    【讨论】:

      【解决方案2】:

      您可以尝试获取 .csb 的组件:

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

      你需要你的组件的名字,在 cocos Studio 的 porperties 上

      【讨论】:

      • 在加载他的main获取组件时,所有其他节点也会被加载。这将导致最初的问题发生。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 2015-12-10
      相关资源
      最近更新 更多