以下修为1.x版本(2.x应该也差不多)
cocos/editor-support/creator/CCGraphicsNode.h
void setGraphicsOpacity(const float opacity) { _graphicsOpacity = opacity; } //增加一个这个,前提 是你定义一下变量 _graphicsOpacity
//float _graphicsOpacity;
//_graphicsOpacity初始化为255
//当然你也可以定义一下get 函数
在 cpp里
void GraphicsNode::onDraw(const Mat4 &transform, uint32_t flags)
if (cmd->nIndices) {
Color4F& color = cmd->color;
//program->setUniformLocationWith4f(colorLocation, color.r, color.g, color.b, color.a);//修改为下面的
program->setUniformLocationWith4f(colorLocation, color.r, color.g, color.b, color.a * _graphicsOpacity/255);
program->setUniformLocationWith1f(strokeMultLocation, cmd->strokeMult);
然后 绑定一下 setGraphicsOpacity 这个函数 就可以了
然后js里改变透明度时,调用一下这个函数就可以了~~
写的有点乱 。。。