在重新着色画布时,三角形不会消失 - JavaScript

时间:2018-02-03 16:41:34

标签: javascript html5 canvas

我正在使用canvas在JavaScript中制作一个简单的游戏。 我制作的一个类代表一个三角形,它的绘图函数接收画布上下文并填充三角形:

draw (ctx)
{
  ctx.fillStyle = "#FFFF00";
  ctx.beginPath ();
  ctx.moveTo (this.x, this.y);
  ctx.lineTo (this.x, this.y + this.height);
  if (this.x == 0)
    ctx.lineTo (this.x + this.width, this.y +  this.height / 2);
  else
    ctx.lineTo (this.x - this.width, this.y + this.height / 2);
  ctx.lineTo (this.x, this.y);
  ctx.closePath();
  ctx.fill();
}

问题是,在某些时候,画布应该重新着色

ctx.fillStyle = "#000000";
ctx.fillRect (0, 0, cnvs.width, cnvs.height);

但是当它发生时,三角形不会消失。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果你想清除画布,你可以这样做(它也会清除你的转换)。

canvas.width += 0; // canvas resizes to the same size

另一种方式

context.clearRect(x, y, width, height);

清除后,您可以重新着色画布。