【问题标题】:Cocos2d: is it better to have single layer and add nodes or is it better to have multiple layers?Cocos2d:单层加节点好还是多层好?
【发布时间】:2011-09-07 08:10:59
【问题描述】:

我有这个小游戏,它由主游戏屏幕和相当多的“窗口”组成,这些“窗口”出现在主屏幕顶部的屏幕上。 在大多数情况下,它只是一个窗口[占屏幕的 90% 以上],有时窗口会打开另一个窗口。 现在,我的主屏幕是一个图层,我拥有的每个窗口都是我在图层中添加和删除的 CCNode。 我并没有真正在我的节点上使用任何触摸检测。如果我想要一些可触摸的东西,它将是一个 CCMenu。 我确实添加了很多 CCSprites,如果这有什么关系的话。 我想知道这是否是一个好的 [性能明智] 方式吗?或者换句话说,如果有理由改变我不得不说的让每个窗口作为一个层。

【问题讨论】:

    标签: cocos2d-iphone


    【解决方案1】:

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

    1. 触摸检测:使用多个层可以更轻松地使用利用层层次结构的触摸检测逻辑,因为 cocos2d 引擎会根据层次结构。

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

    IMO 使用单层和多层在性能方面没有太大差异,但是如果您一次在屏幕上有很多精灵,特别是如果有很多重复的精灵,我强烈建议使用CCSpriteBatchNode(以前称为Texture Atlas 或CCSpriteSheet),这是在处理大量精灵时提高游戏性能的recommended cocos2d method,所以我会说单层与精灵批处理节点在以下方面更好然后将多个层与单独的精灵直接添加到层中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多