protected addLine(pos: cc.Vec2, dis: cc.Vec2): void {
let line = this.line_layer.getComponent(cc.Graphics);
line.moveTo(pos.x, pos.y);
line.lineTo(dis.x, dis.y);
let color = line.strokeColor;
line.strokeColor = cc.color(color.r, color.g, color.b);
line.stroke();
}
1赞
我需要透明度慢慢变化,line.moveTo(pos.x, pos.y);这个是不能去掉的,去掉没有黑线,但是透明度就不能慢慢变化
还是有差别的,我这边是要类似拖尾那种轨迹,有渐变的,如果在交接点添加一个圆上去透明度都变了
就这种了
cocos的Graphics跟其他引擎比起来还是有差距了,不晓得魔改了些啥
我想法是,还是那个方案,但是圆处理在下层,跟透明度小的一致
而且他的方案不是简单画个圆
一个东西只要是透明的,他就会叠加下面的渲染,也就是说还是看得到圆和线段叠加区域
这个是我一个Graphics绘制的,中间没有move,他再次stroke会把之前的路径重新画一次,也就导致前面的叠加透明度远远高于预期 protected addLine2(pos: cc.Vec2): void {
let line = this.line_layer_w.getComponent(cc.Graphics);
line.lineTo(pos.x, pos.y);
line.stroke();
}
let line = this.line_layer_w.getComponent(cc.Graphics);
line.lineTo(pos.x, pos.y);
line.stroke();
}
可以尝试下用直线画曲线而不是直接用画园的方法,然后可以自定义弧度和透明度,还有间隔,可能会好点

