请问Graphics怎样画虚线?

请问Graphics怎样画虚线?

同样想问

????

强烈倡议 Graphics支持画虚线,这是最基本滴,倡议 Graphics 支持画图片和文字,别逼我吐槽。。。

2赞

怎样画虚线,我想请问一下。

我也不知道怎么画虚线,不过自己用moveTo,lineTo写一个函数画虚线也可以吧

能否给一个案例?

大概就像这样?

drawLine:function(start,end){ //获得组件 var com=this.node.getComponent(cc.Graphics) //获得从start到end的向量 var line=end.sub(start) //获得这个向量的长度 var lineLength=line.mag() //设置虚线中每条线段的长度 var length=20 //根据每条线段的长度获得一个增量向量 var increment=line.normalize().mul(length) //确定现在是画线还是留空的bool var drawingLine=true //临时变量 var pos=start.clone() com.strokeColor=cc.color(255,255,255) //只要线段长度还大于每条线段的长度 for(;lineLength>length;lineLength-=length) { //画线 if(drawingLine) { com.moveTo(pos.x,pos.y) pos.addSelf(increment) com.lineTo(pos.x,pos.y) com.stroke() } //留空 else { pos.addSelf(increment) } //取反 drawingLine=!drawingLine } //最后一段 if(drawingLine) { com.moveTo(pos.x,pos.y) com.lineTo(end.x,end.y) com.stroke() } },
画出来的效果是这样的

7赞

谢谢,晚点我研究下,也谢谢向前进

senDottedLine(start: Vec2, end: Vec2, part: number) { if(part>0){ for (var i = 0; i < part; i++) { this.grap.moveTo(end.x / part * (i * 2), end.y / part * (i * 2)); this.grap.lineTo(end.x / part * (i * 2 + 1), end.y / part * (i * 2 + 1)); } this.grap.stroke(); }else{ return; } }