Cocos2d 2.x の特定のスプライトのブレンド モードを GL_FUNC_SUBTRACT に変更する方法を知っている人はいますか?
いくつか試してみましたが、基本的には白(または黒)の円を使用してアルファを非表示にするレイヤーマスクを作成しようとしています。
Cocos2d 2.x の特定のスプライトのブレンド モードを GL_FUNC_SUBTRACT に変更する方法を知っている人はいますか?
いくつか試してみましたが、基本的には白(または黒)の円を使用してアルファを非表示にするレイヤーマスクを作成しようとしています。
その目的のために、ラッパー Sprite を実装してみることができます。そのクラス (SubSprite としましょう) は CCNode クラスを継承し、GL_FUNC_SUBTRACT で描画する通常の CCSprite という単一のメンバーを持つ必要があります。
draw メソッドを次のようにオーバーライドします。
-(void) draw{
int oldEquation;
glGetIntegerv( GL_BLEND_EQUATION_ALPHA, &oldEquation);
glBlendEquation( GL_FUNC_SUBTRACT );
[targetSprite draw];
glBlendEquation( oldEquation );
}
私は試していませんが、動作するはずで、スプライト描画関数全体を書き直す必要はありません。