2025-04-24 17:03:28 +08:00

27 lines
1.0 KiB
TypeScript

export default class SKDrawUtil{
static drawDashLine(node:cc.Node,start:cc.Vec2,end:cc.Vec2,color:cc.Color=cc.Color.RED,lineWidth:number=5,dashLength:number=10,dashSpace:number=5){
let graphics=node.getComponent(cc.Graphics);
if(!graphics){
graphics=node.addComponent(cc.Graphics);
}
graphics.clear();
graphics.strokeColor=color;
graphics.lineWidth=lineWidth;
let lineLength=end.sub(start).mag();
let current=start.clone();
let normalize=end.sub(start).normalize();
let dash=normalize.mul(10);
let space=normalize.mul(5);
let unitLength=dashLength+dashSpace;
for(;lineLength>unitLength;lineLength-=unitLength){
graphics.moveTo(current.x,current.y);
current.addSelf(dash);
graphics.lineTo(current.x,current.y);
graphics.stroke();
current.addSelf(space);
}
graphics.moveTo(current.x,current.y);
graphics.lineTo(end.x,end.y);
graphics.stroke();
}
}