这也就是rAF的最大优势,它是「由系统来决定回调函数的执行时机,系统每次绘制之前会主动调用 rAF 中的回调函数」,它能够确保回调函数是按照系统的绘制频率来调用,无论是60Hz还是50Hz,只要画面刷新就会调用回调函数...这里面涉及到的知识点是canvas的创建、画面清除,以及drawImage的应用。...通过drawImage我们可以裁剪精灵图中某一部分的图像,并绘制到画布中,drawImage一共有9个参数context.drawImage(img,sx,sy,swidth,sheight,x,y,width...,height) 分别是精灵图、裁剪区域的坐标,裁剪的区域大小,在画布上放置图像的位置坐标,在画布上放置图像的大小。...(0, 0, CANVAS_WIDTH, CANVAS_WIDTH, CANVAS_HEIGHT)
// 绘制地面
this.ctx.drawImage(window.imageSprite,
2