Graphics绘制粗曲线,这种问题能否解决?

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);这个是不能去掉的,去掉没有黑线,但是透明度就不能慢慢变化

等我给你找个方案,我记得 @白玉无冰 大佬的物理绳子处理过类似需求

看下面的连接处处理
画绳子

还是有差别的,我这边是要类似拖尾那种轨迹,有渐变的,如果在交接点添加一个圆上去透明度都变了

image 就这种了

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();
}

可以尝试下用直线画曲线而不是直接用画园的方法,然后可以自定义弧度和透明度,还有间隔,可能会好点