0

私は現在、Cocos2dシーン(Kobold2dで実行)にいくつかのレイヤーを持っています。各レイヤーには、スプライトバッチノードが接続されています。一度に画面に表示されるスプライトの数がばかげていることを考えると、バッチノードを使用する必要があります。すべてが正常に機能しており、小さなパーティクルシステムを設定しました。私が遭遇している問題は、CCParticleBatchNodeパーティクルエミッターが常にすべての上にあることです(これはzOrderの最上位レイヤーであるため)-しかし、これは等角ゲームであり、明らかに機能しません。

CCSpriteBatchNodeを含むレイヤーのスプライトの間にエミターを忍び込ませる方法はありますか?私はvertexZをいじってみました(私はcocos2d 2.+の最新バージョンを使用しています)が、何をしても問題はありません。Kobold2dのLUAファイルは何も変更されていないようです。これを有効に設定すると、バッチノードのprogramForKey:kCCShader_PositionTextureColorAlphaTestのシェーダーが有効になりますが、これは最善の解決策ではないでしょうか。

誰かがこのようなことに遭遇したり、私ができる犠牲や私が考えていないトリックを提案したりしましたか?

4

1 に答える 1

1

VertexZを使用するには、深度バッファリングを有効にする必要があります(config.luaを参照)。Vertexzは、スプライトバッチと他のノードの間で描画順序を変更する唯一の方法です。

于 2013-02-04T05:23:23.260 に答える