1

我想在 Cocos2D 中创建一个画笔。我有一个 png 文件,它指定图像的 alpha 通道值。(只有一个通道)我想将 alpha 值赋予 ccsprite 的纯色纹理。并利用 ccsprite 单元作为 pan.在屏幕上绘制。

我如何在编程中做到这一点?

非常感谢!

4

2 回答 2

2

我也必须为我的项目这样做。我想出了这个主意。(在 cocos2d-x 中)

  1. 将禁用 rgb 但启用 alpha 的“alpha sprite”(通过 glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_TRUE))渲染到 CCRenderTexture。

  2. 使用禁用但启用 rgb 渲染您的实际精灵(通过 glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_FALSE))

  3. 现在你有来自实际精灵的rgb和来自'alpha sprite'的rgb,然后你将渲染纹理的精灵的alpha混合属性设置为{GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA}。

  4. 现在您可以添加渲染纹理并将其绘制到场景中。

我已经尝试过了,这对我的项目有用。希望这对你也有用。

于 2014-05-29T02:23:09.597 回答
1
sprite.opacity = 100;

opacity range is 0-255. You can't change alpha of a texture and all sprites using the texture at once, unless you write a custom shader.

于 2013-03-31T08:41:49.557 回答