应用程序中的颜色与它们所基于的图像不同

时间:2012-04-04 19:51:24

标签: objective-c ios opengl-es colors cocos2d-iphone

我正在为客户创建一个着色书应用程序并且它正在顺利进行。很好,事实上,因为它已经完成。然而,有一个障碍:一些颜色没有按预期显示。

客户端给了我图像和用于创建画笔的键。我使用了颜色参考并制作了几种不同尺寸的圆圈,用于每种颜色,以表示不同的刷子尺寸。然后我按如下方式加载画笔:

    brush = [[CCSprite spriteWithFile:@"yellowbrush3.png"] retain];
    [brush setBlendFunc: (ccBlendFunc) { GL_ONE, GL_ONE_MINUS_SRC_ALPHA }];  
    [brush setOpacity:20];

此特定文件的画笔图像为:

Yellow brush

我制作了颜色输出的屏幕截图,以便与我用来创建画笔的键进行比较:

Several color swatches

大约一半的颜色显得很好,而其他颜色非常明显。

我尝试过不同级别的不透明度,更改了某些GL设置,但似乎没有任何帮助。

1 个答案:

答案 0 :(得分:2)

这是由于混合工件和您在白色背景上绘图的事实。要确认这一点,请更改背景颜色,并查看每种颜色的色调是否略有变化。要纠正此问题,您可以降低绘制颜色的不透明度,或选择更合适的混合模式。

尝试将glBlendFunc更改为使用GL_ONE这两个参数。这将删除混合,但至少你的颜色应该100%准确。