这个是BUG,我们看看什么情况~
这个透明度的问题在1.9的时候有办法解决吗?现在因为这个透明度问题很难受!
现在有解决方案了吗?1.9版本,给指个方向
解决了吗?或者有没有什么可以代替的方案?继续解决啊
解决了吗
这个需要修改引擎,在引擎里加个透明度的参数,然后再加个jsb绑定~
之前改过,不过找不到了
试试自己修改一下~
以下修为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里改变透明度时,调用一下这个函数就可以了~~
写的有点乱 。。。
2.1.2了,引擎组能关注一下这个问题吗。
貌似2.1.2依然没有解决这个问题,我也碰到同样问题。
目前暂不支持透明度修改,请知悉。
遇到什么困难了,2.4都还没支持?!
在改变node透明度的时候可以在update里刷新graphics的strokeColor或者fillColor中的a
你只改变颜色是不行的,改变后你还得重新fill或stoke,这两个方法里还会涉及一些计算,频繁的调用对性能有损耗
自己修改下effect,加一个透明属性,自己修改,比修改顶点属性还要好点
都2021年了,还是没有解决
graphics的透明度是由绘制颜色cc.color(255,255,255,0)的最后一个alpha值决定的
那问题来了,怎么渐变呢
渐变alpha值再进行清除重新绘制,实现层面肯定没问题,用tween就可以,性能不懂怎么样