想使用mask,背景图是一张大图,根据自己画的多边形去裁切,不知道可以实现吗????
可以,当时随便写的
initMask(){
if (!this.mask._graphics) {
this.mask._createGraphics();
}
}
test() {
this.mask._updateGraphics = () => {
var graphics: cc.Graphics = this.mask._graphics;
graphics.lineWidth = 10;
graphics.fillColor.fromHEX('#ff0000');
//绘制不规则图形
graphics.moveTo(200, 0);
graphics.lineTo(200, 100);
graphics.lineTo(100, 100);
graphics.lineTo(100, 200);
graphics.lineTo(0, 200);
graphics.lineTo(0, 0);
graphics.close();
graphics.stroke();
graphics.fill();
}
this.mask._updateGraphics();
}
感谢回复;我自己已经在几天前解决,和楼主的方案一样;
现在总结一下,希望能帮到其他的朋友:
当时也是通过源代码看到的mask下的_graphics,然后直接画图就行,基本上就可以解决;
但是请注意,有个坑:当你想画多个多边形的时候,每一次fill之后,都需要执行一次moveTo,要不然会有一部分画不上的情况。
我也因为遇到了同样的需求搜到了这篇帖子,试过之后我也补充一点:我用的是v2.2.2版本,var graphics: cc.Graphics = this.mask._graphics;之后要graphics.clear()清空一下,不然画不上去。