Cocos2d iphone 将一个CCSprite的内容添加到另一个CCSprite而不影响性能

Cocos2d iphone 将一个CCSprite的内容添加到另一个CCSprite而不影响性能,cocos2d-iphone,ccsprite,Cocos2d Iphone,Ccsprite,我有一个iPad应用程序,包含400个CCSprite的网格,其中一些包含几个已经分层在一起的Sprite。 我没有使用CCSpriteBatchNode,因为我认为节点中的所有项目的ZOrder都需要相同,但事实并非如此。性能是可以接受的。 但是,如果用户希望显示网格以帮助布局,我需要在400个精灵的每个中心选择性地覆盖一个小点。问题是,通过使用addChild添加另一个CCSprite,我现在在屏幕上有800多个Sprite,这严重影响了性能。 有没有一种方法可以将新的精灵绘制到已经存在的精

我有一个iPad应用程序,包含400个CCSprite的网格,其中一些包含几个已经分层在一起的Sprite。 我没有使用CCSpriteBatchNode,因为我认为节点中的所有项目的ZOrder都需要相同,但事实并非如此。性能是可以接受的。 但是,如果用户希望显示网格以帮助布局,我需要在400个精灵的每个中心选择性地覆盖一个小点。问题是,通过使用addChild添加另一个CCSprite,我现在在屏幕上有800多个Sprite,这严重影响了性能。 有没有一种方法可以将新的精灵绘制到已经存在的精灵上,而不影响性能?我想动态生成一个由多个部分组成的新精灵,但这不是一组堆叠的精灵

我正在使用cocos2dv2.3-我确实尝试将项目转换为cocos2dv3,但发现性能稍差,并且导致了许多扩展问题,鉴于项目即将完成,这意味着最好在V2.3中完成


非常感谢您的建议。PS:我发现了一些类似的问题,但他们讨论了如何堆叠精灵-这不是问题,我可以做到,我正在努力绘制一个新的精灵。

答案以CCRenderTexture的形式出现-将所有精灵绘制到单个纹理中,然后将其用于单个CCSprite

将现有精灵的纹理更改为带有点的纹理。
如果此解决方案与您的情况不匹配,请提供屏幕截图或部分屏幕截图,或更详细地描述场景中的精灵。

。。。如果这个点真的是一个不太复杂的点,你可以在你想要“dotify”的CCSprite上尝试一个着色器。。。这样就不会添加draw调用,对性能的影响应该是最小的。你可以用一个统一的工具来控制.hasDot着色器。你知道我该怎么做吗,或者是一个很好的资源来帮助你?我从未使用过着色器,所以不知道从哪里开始。是否有某种方法可以从几个精灵中动态创建纹理,然后我可以将其用于显示的精灵?请尝试“批处理节点”,看看这是否可以修复性能。如果确实如此,那么将zorder改为使用vertexz可能需要启用深度缓冲。顺便问一下,你确定有v2.3吗?我认为2.2是最新的v2.x官方版本。只有当精灵没有改变时,这才有帮助,因为如果它们改变了,那么每次重新创建渲染纹理都会使事情变得更慢。我应该在一开始就澄清一下——精灵没有改变,所以这是我的解决方案。运行应用程序时,已将CPU从约80%减少到12%。