gpt4 book ai didi

ios - 如何使用 setBlendFunc 将 CCSprite 转换为黑白/灰色

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:35 25 4
gpt4 key购买 nike

是否可以使用 setBlendFunc 将 CCSprite 制作成黑白的?如果是,请告诉如何做。

更多详情:

我必须在某个时间点将我的游戏 Sprite (背景、角色)设置为灰色/黑色和白色。我不想为此拍摄另一张照片。我试过 CCTexture2DMutable。但问题是它需要额外的内存相同的 Sprite 。

有什么方法可以使用一个蒙版图像并将所有 Sprite 设为灰度。请帮忙。

最佳答案

这不是数学上正确的灰度,但看起来是黑白的:

// setup grayscaling:
GLfloat rgba[4] = { 0.65f, 0.65f, 0.65f, 1.0f };
glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE );
glTexEnvi( GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_DOT3_RGB );
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, rgba );
glTexEnvi( GL_TEXTURE_ENV, GL_SRC0_RGB, GL_CONSTANT );
glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR );
glTexEnvi( GL_TEXTURE_ENV, GL_SRC1_RGB, GL_TEXTURE );
glTexEnvi( GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR );
// ... glDrawArrays() here ...
// turn off grayscaling:
glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);

将这段代码插入到CCSprite绘图方法中。 0.65f rgba 的值是实验设置的,尝试调整它。

关于ios - 如何使用 setBlendFunc 将 CCSprite 转换为黑白/灰色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8738215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com