0

Cocos2d 2.x の特定のスプライトのブレンド モードを GL_FUNC_SUBTRACT に変更する方法を知っている人はいますか?

いくつか試してみましたが、基本的には白(または黒)の円を使用してアルファを非表示にするレイヤーマスクを作成しようとしています。

4

1 に答える 1

2

その目的のために、ラッパー 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 );
}

私は試していませんが、動作するはずで、スプライト描画関数全体を書き直す必要はありません。

于 2013-02-07T15:24:17.557 に答える