const { ccclass, property } = cc._decorator;
const CLEAR_LINE_WIDTH = 5;
@ccclass
export default class maskCtrl extends cc.Component {
@property(cc.Node)
maskNode: cc.Node = null;
clearBox() {
let mask: any = this.maskNode.getComponent(cc.Mask);
let stencil = mask._graphics;
stencil.clear();
stencil.moveTo(-50, -50);
stencil.lineTo(-200, -50);
stencil.lineTo(-100, -200);
stencil.lineTo(-50, -100);
stencil.lineTo(-50, -50);
stencil.fill();
stencil.roundRect(250, -50, 150, 80, 20);
stencil.fill();
// 矩形
stencil.rect(250, 100, 100, 50);
// 圆
stencil.circle(-300, 100, 50);
stencil.fill();
// 椭圆
stencil.ellipse(-80, 100, 80, 40);
// 部分圆
stencil.arc(100, 100, 50, 0, Math.PI, true);
stencil.lineWidth = CLEAR_LINE_WIDTH;
stencil.lineCap = cc.Graphics.LineCap.ROUND;
stencil.lineJoin = cc.Graphics.LineJoin.ROUND;
stencil.strokeColor = cc.color(255, 255, 255, 255);
stencil.stroke();
}
}
【cocos creator】cc.mask自定义多边形遮罩,可设置多个空洞
于 2024-08-30 13:16:59 首次发布