我有 2 张精灵表,一张用于角色和 HUD 图层,一张用于背景。“背景精灵表”有一个实际的背景部分和一个“前景部分”,应该在字符上方的 z 层中分层。
问题来了。使用 CCSpriteBatchNode 来优化绘图性能我被迫有两个不同的 CCSpriteBatchNode,每个大小为 2048*2048,以便使用 2 个精灵表。
这是我想要实现的结构的简要“示意图”:
z=0 background sheetBackground
z=1 characters sheetCharacters
z=2 foreground sheetBackground
sheetBackground -> spriteBatchNodeA
sheetCharacters -> spriteBatchNodeB
!!! Conflict -> sprites in a spriteBatchNode cannot be z-ordered in respect to sprites in another batch node !!
不幸的是,精灵的 z 顺序只影响同一 CCSpriteBatchNode 中的精灵,而不影响“全局 z 顺序”。
为了克服这个问题,对我来说唯一的方法是拥有一个双倍尺寸(4096 * 4096)的精灵表。我发现这个支持更大文件的github 项目CCBigImage 。在我开始改变我的代码结构之前,我想问你这是否是一个可接受的解决方案,或者是否有其他方法可以实现这一点。