我想在画布上移动一个小部件,出于各种原因,我不想使用精灵。我正在使用最新版本的 Chrome。为了移动小部件,我“取消绘制”它,然后在另一个地方重新绘制它。'undraw',我的意思是我只是在同一个地方绘制相同的图像,但用与背景相同的颜色绘制它,所以在我绘制新的之前,小部件完全消失了。问题是当我“取消绘制”时,原始图像的痕迹仍留在画布上。我在这里探讨了相关问题,但没有找到任何有用的东西。我了解绘制单像素线并获得抗锯齿的问题,因此我将线宽设置为 2(以及其他各种非整数值),但无济于事。有人有想法么?这是一个小提琴演示,这是执行更新的函数:
function draw(){
if(previousX !== null) {
ctx.lineWidth = 1;
ctx.fillStyle = '#ffffff';
ctx.strokeStyle = '#ffffff';
drawCircle(previousX, previousY, 20);
}
ctx.lineWidth = 1;
ctx.fillStyle = '#000000';
ctx.strokeStyle = '#000000';
drawCircle(x, y, 20);
console.log('drew circle (' + x + ', ' + y + ')');
previousX = x;
previousY = y;
}
PS我只是一个业余爱好者,在图形方面没有丰富的经验,所以如果可能的话,请稍微降低你的答案。