Canvas 如何仅在特定图纸上使用ctx.clearRect?

Canvas 如何仅在特定图纸上使用ctx.clearRect?,canvas,Canvas,假设我写了一个towerdefense游戏。现在我想删除/清除被摧毁的塔。我可以通过使用 ctx.clearRect(0, 0, canvas.width, canvas.height); 但是我必须打电话 setIntervall(drawAllTowers, 100) 为了“再次”绘制功能塔(我将塔的绘图坐标存储在一个数组中,当访问drawAllTowers时,该数组将循环通过) 我很确定还有另一种解决办法,对吗?我搜索了论坛,发现ctx.clearRect背后的想法是在它被清除后重新绘

假设我写了一个towerdefense游戏。现在我想删除/清除被摧毁的塔。我可以通过使用

ctx.clearRect(0, 0, canvas.width, canvas.height);
但是我必须打电话

setIntervall(drawAllTowers, 100)
为了“再次”绘制功能塔(我将塔的绘图坐标存储在一个数组中,当访问drawAllTowers时,该数组将循环通过)

我很确定还有另一种解决办法,对吗?我搜索了论坛,发现ctx.clearRect背后的想法是在它被清除后重新绘制所有内容。是的,它能工作,但它很滞后,而且闪烁很多

有没有更好的方法来解决这个问题?:)