0

有谁知道如何将 Cocos2d 2.x 中特定精灵的混合模式更改为 GL_FUNC_SUBTRACT?

我尝试了一些事情,但基本上我正在尝试使用白色(或黑色)圆圈创建图层蒙版并隐藏 alpha。

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 回答