为iOS在cocos2d中添加颜色

为iOS在cocos2d中添加颜色,ios,cocos2d-iphone,ccsprite,Ios,Cocos2d Iphone,Ccsprite,我正在尝试使用cocos2d执行类似RGB循环的操作: 我有可移动的圆(一个用于R,另一个用于B,另一个用于G),我想自动计算相交圆的颜色(不使用新颜色在特定区域上创建某些东西-这是我正在使用的解决方案) 有没有办法自动添加颜色 我现在在做什么? 目前,我正在CCSprite中使用1x1空白png(作为纹理),然后我更改CCSprite的颜色(sprite.color=ccc3(r,g,b)) 我尝试了什么? 我尝试在我的精灵中使用不同的混合模式,使用mySprite.blendFunc=(c

我正在尝试使用cocos2d执行类似RGB循环的操作:

我有可移动的圆(一个用于R,另一个用于B,另一个用于G),我想自动计算相交圆的颜色(不使用新颜色在特定区域上创建某些东西-这是我正在使用的解决方案)

有没有办法自动添加颜色

我现在在做什么?

目前,我正在
CCSprite
中使用1x1空白png(作为纹理),然后我更改
CCSprite
的颜色(
sprite.color=ccc3(r,g,b)

我尝试了什么?

我尝试在我的精灵中使用不同的混合模式,使用
mySprite.blendFunc=(ccBlendFunc){GL_DST_COLOR,GL_ONE_减号_SRC_ALPHA}
甚至添加了一些不透明度(直接在精灵中或使用模式的纹理中
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat\U RGBA8888]
),但我无法获得想要的效果


我试图在中找到一个组合,但没有找到有效的组合。

1x1像素纹理不推荐使用。我认为旧设备甚至不会显示它们。至少使用2x2或更好的4x4。不确定哪一个是最小值

如果您希望每个像素有一个精灵,请记住每个精灵大约有400字节(取决于cocos2d版本)。这意味着用精灵像素填充整个320x480屏幕将消耗近60MB的内存

我认为仅仅使用混合模式无法达到与图片中相同的效果。您必须编写着色器程序,或者以其他方式将每个子部分渲染为填充多边形,颜色由每个重叠精灵的基色确定


由于只能将混合模式应用于整个精灵(在本例中为圆),因此混合模式可能适用于一个交点,但它也会与背景混合,而背景不是您想要的。我不是100%确定,但我认为有一个技术原因,为什么这个RGB颜色添加不工作,只是混合模式。也许对OpenGL ES渲染有更好技术理解的人可以提供帮助。

感谢您提供有关sprites的信息。然而,我正在用一种纹理填充我的精灵(如果我没有说清楚,很抱歉),所以你的评论仍然适用?此外,我已经尝试了混合模式和不透明度玩,我无法达到我想要的结果。