Creator版本:1.6.0正式版
环境:Windows+Chrome
问题描述:WebGL模式下cc.Graphics填充过多个形状时,之前填充的颜色会产生变化。Canvas与模拟器下正常。
将下面这段代码挂在一个节点上运行即可复现:
cc.Class({
extends: cc.Component,
onLoad: function() {
this.draw = this.addComponent(cc.Graphics);
this.draw.fillColor = cc.color(175, 175, 175);
let n = 10;
let size = 30;
let startX = -size * n / 2;
let startY = size * n / 2;
for (let i = 0; i < n * n; i++) {
let lt = { x: startX + i % n * size * 1.1, y: startY - Math.floor(i / n) * size * 1.1 };
let rt = { x: lt.x + size, y: lt.y };
let rb = { x: lt.x + size, y: lt.y - size };
let lb = { x: lt.x, y: lt.y - size };
let points = [lt, rt, rb, lb];
this.drawDiamondAndFill(points);
}
},
drawDiamondAndFill(points) {
this.draw.moveTo(points[0].x, points[0].y);
for (let k = 1; k < 4; k++) {
this.draw.lineTo(points[k].x, points[k].y);
}
this.draw.close();
this.draw.fill();
}
});
填充颜色是cc.color(175, 175, 175)灰色,但是部分变成了紫色。
WebGL:
Canvas:
模拟器: