2011-09-07 74 views
0

我有这个我的小游戏,它由主屏幕和主屏幕顶部屏幕上显示的不少“窗口”组成。 在大多数情况下,它只是一个窗口[超过屏幕的90%],有时窗口会打开另一个窗口。 现在,我的主屏幕是一个图层,我拥有的每个窗口都是一个CCNode,我可以从图层中添加和删除。 我没有真正在我的节点上使用任何触摸检测。如果我想要可触摸的东西,它将是一个CCMenu。 我确实有很多CCSprites被添加,如果有什么要做的话。 我在想,如果这是一个很好的[性能明智]的方式去?换句话说,如果有一个基本原理可以改变我必须让每个窗口作为一个图层。Cocos2d:单层还是增加节点更好还是多层更好?

回答

4

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

  1. 触摸检测:采用多层使得它更容易使用触摸检测逻辑,它利用层次层次结构,因为cocos2d引擎根据层次结构将所有触摸事件依次传递给层。

  2. Z排序:对于场景中的某些子画面总是在其他子画面的前,使用多个层使得它更容易执行该z排序而不是使用单层时ZORDER参数修补。

IMO没有太大的区别表现明智使用单层和多层,之间,如果你在同一时间在屏幕上大量的精灵,特别是如果有大量重复的精灵,我会强烈推荐使用CCSpriteBatchNode(以前称为Texture Atlas或CCSpriteSheet),它是在处理大量精灵时提高游戏性能的recommended cocos2d method,所以我认为带精灵批量节点的单层在性能方面更好,个别精灵直接添加到图层中。