0

我目前在 Cocos2d 场景中有几层(在 Kobold2d 中运行)。每层都有一个附加的精灵批处理节点。我需要使用批处理节点,因为我一次在屏幕上拥有大量可笑的精灵。一切正常,我已经设置了一个小粒子系统。我遇到的问题是 CCParticleBatchNode 粒子发射器总是在一切之上(因为它是 zOrder 的最高层) - 但这是一个等距游戏,显然不起作用。

有没有一种方法可以让我在包含 CCSpriteBatchNode 的任何层上的精灵之间偷偷摸摸发射器?我尝试过使用 vertexZ(我使用的是最新版本的 cocos2d 2.+),但不管我做什么,它似乎都没有改变任何东西,即使 Kobold2d 的 LUA 文件会启用此项已正确设置,并且我的批处理节点上的 programForKey:kCCShader_PositionTextureColorAlphaTest 的着色器已启用 - 但这也许不是最好的解决方案?

有没有人遇到过这样的事情或建议我可以做出的任何牺牲或我可以做的我没有想到的技巧?

4

1 回答 1

1

要使用 vertexZ,您需要启用深度缓冲(参见 config.lua)。Vertexz 是改变 spritebatches 和其他节点之间绘制顺序的唯一方法。

于 2013-02-04T05:23:23.260 回答