Cocos2d:是使用单层添加节点更好,还是使用多层更好?



我有一个小游戏,它由主游戏屏幕和一些出现在主屏幕顶部的"窗口"组成。在大多数情况下,它只是一个窗口(超过屏幕的90%),有时窗口会打开另一个。现在,我的主屏幕是一个图层,我拥有的每个窗口都是我从图层中添加和删除的CCNode。我并没有在节点上使用任何触摸检测。如果我想要一些可触摸的东西,它将是一个CCMenu。我确实添加了很多ccsprite,如果这有什么关系的话。我想知道这是否是一个好的(性能方面的)方法?或者换句话说,如果有理由改变我必须让每个窗口作为一个图层

据我所知,使用多层而不是单层的两个最重要的好处是触摸检测和z轴排序:

  1. 触摸检测:使用多层使得使用触摸检测逻辑更容易,因为cocos2d引擎根据层次结构将任何触摸事件一个接一个地传递给层。

  2. z-ordering:对于某些精灵总是在其他精灵前面的场景,使用多层可以更容易地执行z-ordering,而不是在使用单层时必须修改zOrder参数。

在我看来,使用单层和多层在性能上并没有太大区别,但是如果你一次在屏幕上有很多精灵,特别是如果有很多重复的精灵,我强烈建议使用CCSpriteBatchNode(以前称为Texture Atlas或CCSpriteSheet),这是cocos2d在处理大量精灵时提高游戏性能的推荐方法。所以我认为带有精灵批量节点的单层比直接添加单个精灵的多层更有效。

相关内容

最新更新