Canvas 在画布中由drawImage创建的运动图像

Canvas 在画布中由drawImage创建的运动图像,canvas,html5-canvas,Canvas,Html5 Canvas,如何在画布中移动图像?没有可以通过+=或-=更改的x\y坐标。画布是一个即时绘图表面。当您进行类似于drawImage的调用时,画布会将位图渲染到上下文中,然后忘记曾经发生过的任何事情。它什么也不知道 这意味着你需要跟踪一切。如果希望移动图像,则需要清除画布并在与以前不同的位置重新绘制图像(以及场景中的所有其他内容) 这涉及到很多不同的方面,所以我做了一个教程,作为一个体面的介绍这个主题。本教程使用可以在屏幕上拖动的矩形,但使用图像几乎是一样的。首先,您是如何将图像放到画布上的?您必须在draw

如何在画布中移动图像?没有可以通过+=或-=更改的x\y坐标。

画布是一个即时绘图表面。当您进行类似于
drawImage
的调用时,画布会将位图渲染到上下文中,然后忘记曾经发生过的任何事情。它什么也不知道

这意味着你需要跟踪一切。如果希望移动图像,则需要清除画布并在与以前不同的位置重新绘制图像(以及场景中的所有其他内容)


这涉及到很多不同的方面,所以我做了一个教程,作为一个体面的介绍这个主题。本教程使用可以在屏幕上拖动的矩形,但使用图像几乎是一样的。

首先,您是如何将图像放到画布上的?您必须在drawImage中指定x/y偏移。我用drawImage(my_image,x,y)创建了一个图像,其中x和y是鼠标点击事件的坐标。现在,只需保存这些x和y值,增加它们,然后重新绘制。那么旧图像呢?我是否应该在每个重画周期都删除它?它对性能有好处吗?Canvas的工作原理类似于传统的屏幕界面。要更改“帧”,您需要清除它并重新绘制。性能取决于客户端计算机、画布的大小以及要重画的图像的大小。(如果需要更精确的测量,则需要进行现场测试)