擦除画布中的矩形,但它们会回来
Erase rects in Canvas, but they come back
我正在尝试编写一个小的俄罗斯方块克隆来学习Canvas。我已经有一个街区掉下来了。我只是让它在"for"循环中下降一列,在下面的网格正方形中重新绘制,然后使用 rectClear 擦除上面的正方形。(笨拙的alert()是查看进度)。
for (var y = 21; y >= 0; y--) {
drawSquare(3,y,'green');
clearSquare(3,(y+1));
alert(y);
};
有趣的是,如果我交换"clearSquare"和"drawSquare"行,则根本没有删除
任何行。我不确定这是否是我的逻辑问题,或者我是否未能掌握画布中的某些内容。如您所见,我已经笨拙地输入了"context.save()",以防我的更改没有"提交"或其他什么,但我相信这在这里无关紧要。
这是一个JSFiddle
该方法rect()
每次调用时都会向当前路径添加一个矩形。清除画布只会清除像素,而不会清除路径,因此下次填充/描边时,它将被包括在内,因此会重新出现。
要解决,只需在添加矩形之前将此 tp 称为 drawSquare
方法:
ctx.beginPath(); // this will start a new path, clearing the old
ctx.rect(...);
更新的小提琴
相关文章:
- 擦除画布中的矩形,但它们会回来
- 防止退格键在 AngularJS 中导航回来
- 当在堆栈底部添加ImageView时,我想删除RelativeLayout中的顶部ImageView,但它正在删除整个布
- Javascript中的石头剪刀布
- 将项目吐到不同的数组中并将其检索回来
- 使用javascript如何克隆表中的所有行以存储在会话中并将其追加回来
- 使用“;回来0”;在javascript中
- 在我的表单中,我检查了输入无线电和图像更改,但我填充输入文本和图像更改回来
- JavaScript中的石头剪刀布
- 为什么在我的比赛中球没有停在边界线上然后反弹回来?
- JavaScript中的石头剪刀布
- 而不是提示从图像中选择石头,布,剪刀等游戏
- 如何比较卡布奇诺中的两个物体是否相等
- “石头,布,剪刀”在代码中,codecademy
- javascript中的重复函数(石头,剪刀,布)
- 我怎么做,当计时器计数回来,它将刷新/更新文本文件中的文本
- Three.JS中的约束布
- 如何在本地浏览器中存储数据并从中检索回来
- 如何从表单中的所有输入复制自定义属性,然后再赋值回来
- 在.net中获取字符串的字节数组,并在Javascript中转换回来