最近在学习canvas,做了个游戏,可是一些应有的背景图片却经常丢失,不知道为什么。经过多次调试,发现是clearRect导致的这个现象。当我不调用这个函数就没事。我使用requestAnimationFrame(loop);进行画布刷新,刷新速度是100ms到500ms不定。因为character是一直移动的,所以我也需要不断的调用clearRect来清除掉之前的图像。可是每一次触发clearRect就会导致一部分背景图片丢失。即使我不频繁的调用这个函数,这个现象也还在。奇怪的是丢失的背景图片都是右边和下方的。左边和上方都完全正常。
clearRect函数如下:
ctx.clearRect(x*unitSize, y*unitSize, (x+1)*unitSize,(y+1)*unitSize);
x,y分别是图像的坐标,unitSize是每一个坐标占据的像素。因为都是正常性图像,所以长宽设定是一样的。通过重绘背景图片是可以解决这个问题,但是画面会有大块的方块区域不停的闪烁,会很不好看。不知有没有高手能帮我解惑,感激不尽!