sprite的内存问题,麻烦熟悉的朋友帮忙解惑

creator应该是面向组建开发的吧,因为我用sprite对象无法直接访问node的属性。奇怪的是c++代码的Sprite还是继承自Node。
现在问题来了,创建一个sprite,需要挂载到node上,同时还要继承node?会不会浪费内存空间?

// 这里创建一个node。
var node = new cc.Node(“New Sprite”);

//这里是不是又要创建一个node? 因为sprite继承自node
var sprite = node.addComponent(cc.Sprite);
node.parent = this.node;

求官方解惑啊,这是api文档里面的创建Sprite代码。,是不是需要2个node节点?

没看过creator 但是看意思是给这个node节点增加sprite能力,使其拥有sprite的特性。

赋予sprite能力的同时会不会又创建一个node呢?

在 Creator 的 ECS 系统中,有逻辑树与渲染树两个概念。逻辑树对应的就是层级管理器中的节点树。而渲染树是用于渲染的,在 Creator 编辑器中并没有直观的体现。

逻辑树与渲染树的关系:逻辑树中的每个节点都会在渲染树中有一个渲染节点与之对应,而逻辑树中的某个节点如果有渲染组件的话,这个渲染组件也会在渲染树中有一个对应的渲染节点。

回到开始的问题。当添加一个 cc.Sprite 组件时是否会新建一个 node?

cc.Sprite 组件与 C++ 中的 sprite 并不是等价的概念。添加 cc.Sprite 组件时,在逻辑树中并没有新增节点,而渲染树中会新增一个渲染节点(C++中的 sprite )。

语言表达能力有限,希望没有让你更懵圈…:relaxed:

1赞

大体上明白了,一个sprite内存,占两个node的空间.只是两个node的职责不一样。对吧?

这时候只希望node所占内存设计小点。。。。