27 lines
1.0 KiB
TypeScript
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();
|
|
}
|
|
} |