把一张完整的图片切割随意切割
可以使用mask去裁切;
但是你这个比较简单,你其实可以让美术给你做6张 不同角度的60度的图片 没切的位置连在一起放,切了的 移动位置就行
这个是可以触摸随意切的,mask怎么做?有例子可以参考下吗?
同问 - -
楼主解决了吗?
自己写的一个截取不规则图片的mask,有需要的可参考下
/**
- 遮罩组件
- 根据顶点生成mask,处理需要的图形
- 2018-11-12
*/
const {
ccclass,
property
} = cc._decorator;
@ccclass
export default class CutMask extends FLBehavior {
//mask组件
mask: cc.Mask = null;
//重新注册mask事件
onEvent() {
this.mask.node.on(cc.Node.EventType.POSITION_CHANGED, this.mask._updateGraphics, this.mask);
this.mask.node.on(cc.Node.EventType.ROTATION_CHANGED, this.mask._updateGraphics, this.mask);
this.mask.node.on(cc.Node.EventType.SCALE_CHANGED, this.mask._updateGraphics, this.mask);
this.mask.node.on(cc.Node.EventType.SIZE_CHANGED, this.mask._updateGraphics, this.mask);
this.mask.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.mask._updateGraphics, this.mask);
}
//取消mask事件
offEvent() {
this.mask.node.on(cc.Node.EventType.POSITION_CHANGED, this.mask._updateGraphics, this.mask);
this.mask.node.on(cc.Node.EventType.ROTATION_CHANGED, this.mask._updateGraphics, this.mask);
this.mask.node.on(cc.Node.EventType.SCALE_CHANGED, this.mask._updateGraphics, this.mask);
this.mask.node.on(cc.Node.EventType.SIZE_CHANGED, this.mask._updateGraphics, this.mask);
this.mask.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.mask._updateGraphics, this.mask);
}
/** onLoad结束的回调 */
onLoaded() {
this.mask = this.node.getComponent(cc.Mask);
this.initMask();
}
initMask() {
if (!this.mask._graphics) {
this.mask._createGraphics();
}
}
/**进行切割 */
cutFn(localVertexs) {
//_updateGraphics 每次重写这个函数需要将绑定的事件取消掉并重新注册
this.offEvent();
let potArr = localVertexs;
// let potArr = GameDatas.vertexs;
this.mask._updateGraphics = () => {
var graphics: cc.Graphics = this.mask._graphics;
graphics.clear(false);
graphics.lineWidth = 10;
graphics.fillColor.fromHEX('#ff0000');
graphics.moveTo(potArr[0].x, potArr[0].y);
for (let i = 1; i < potArr.length; i++) {
const p = potArr[i];
graphics.lineTo(p.x, p.y);
}
graphics.close();
graphics.stroke();
graphics.fill();
}
this.onEvent();
this.mask._updateGraphics();
}
}
大佬,这段代码真心不明白,能讲述一下吗?
这个应该是和之前有个刮刮卡的类似,图片作为遮罩,这里的线等于画笔