cocos2d场景与图层

时间:2012-03-14 17:28:30

标签: ios cocos2d-iphone

即时创建一个不使用传统菜单系统的游戏 - 你有不同的场景(如设置,关于,新游戏等)然后你只需按一下按钮或类似的东西来改变场景 - 但是菜单内置于实际游戏中(按钮放置在游戏层上)。 当按下按钮时,基于游戏逻辑出现不同的层(可以填满整个屏幕)。这个想法是让游戏层始终存在(因此游戏状态永远不会改变,即使你改变了一些参数,游戏层也不需要重新初始化)。图层或多或少包含按钮和可以滚动的不同精灵列表。

我最担心的是,由于屏幕上有很多图像,性能/内存会下降(游戏层最多可以包含100个精灵并且总是存在 - 如果游戏层前面有一层游戏层暂停和隐藏)。

游戏场景设置:

  • 游戏图层
  • 菜单图层
  • 动态图层(按下某个按钮时添加的图层)

如果我将动态图层更改为场景会有什么不同吗? (而不是创建一个新图层,我只会创建一个新场景并将其推送到场景堆栈而不会杀死游戏层)。这两种方法是相同的还是存在任何关键差异(存储/性能方面)?

2 个答案:

答案 0 :(得分:0)

我建议在这种情况下使用pushScene / popScene。它可以为您节省很多麻烦,例如背景场景会自动暂停。

内存消耗应该大致相同。游戏使用的几乎所有内存都是纹理内存和音频缓冲区,所以不要关心自己在内存中可能有多少精灵,而是关注它们将使用多少不同的纹理。

答案 1 :(得分:0)

不,你应该为场景使用一层。 并使用ccsprite代替子层。 如果您将所有场景放入shareDirector。这将是缓慢而可能的崩溃。