我对所有这些OpenGL调用都很陌生,但幸运的是cocos2d很容易让我在屏幕上绘制线条,如下所示:
-(void)draw {
glColor4f(255, 255, 255,255);
ccDrawLine(ccp(150,110), ccp(280,230));
}
我得到一条白线。
但是现在,我想让它有点透明,所以我将alpha值更改为100.但是,该线仍然是明亮的白色。然后我假设这些值实际上可以从0.0到1.0。我把它设置为0.2,但仍然没有变化。
为什么?
答案 0 :(得分:4)
您首先需要启用混合:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glColor4ub(255, 255, 255,100);
ccDrawLine(ccp(0,110), ccp(280,230));
另请注意,“glColor4ub”采用无符号字节(每个参数为0-255) “glColor4f”接收4个浮点数(每个参数为0-1.0)。使用您感觉舒适的。
祝你好运!答案 1 :(得分:1)
我不是Cocos2d的专家,但OpenGL本身需要打开alpha混合。默认情况下已停用的glEnable(GL_BLEND)
。此外,您应该检查glBlendFunc()功能以设置正确的混合功能。 alpha混合的常用参数是glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);