1
我需要设置一个背景画布,并在各个地方绘制一些图像。在这个背景下没有任何变化,所以我想一次完成。我想我知道该怎么做。然后,我希望将每个框架复制到我的主屏幕画布上,让他们看到背景画布(最终只是其中的一部分)。Html5 Canvas to Canvas Blit
我做了以下内容:
g_CanvasScreen = document.getElementById("m_Canvas");
g_CanvasScreenContext = g_CanvasScreen.getContext("2d");
g_OffScreenBackground = document.createElement("canvas");
g_OffScreenBackgroundContext = g_CanvasScreen.getContext("2d");
我相信这得从HMTL5页面g_CanvasScreen主屏幕画布。
我相信g_OffScreenBackground是一个新创建的内存中的画布。
一旦所有图像都加载,然后我通过调用函数画在正确的地方,背景屏幕上的所有图片:
DrawMapToBackground(g_OffScreenBackground, g_OffScreenBackgroundContext, 2000, 1600);
2000×1600的屏幕外背景的尺寸。
这会导致我不确定的事情。我相信,这将在位块传输背景画布到主屏幕:
g_CanvasScreenContext.drawImage(g_OffScreenBackground,
0, 0, g_OffScreenBackground.width, g_OffScreenBackground.height,
screenX, screenY, g_OffScreenBackground.width, g_OffScreenBackground.height);
这是最后一个函数是否正确?我可以做画布来画布吗?我应该以另一种方式做这件事吗?
这看起来像一个聪明的想法,但不幸的是我的正面和背面有画布旋转。 – Rewind
...并且最终它将仅仅是正在绘制的背景图像的一部分,这取决于玩家的精灵在屏幕上的位置。 – Rewind
够公平的。顺便说一句,drawimage的最后4个参数用于移动和缩放屏幕画布,因为它正在绘制到前景图像。通过提供screenX和screenY,实际上是将背景图像移动到主画布上的该坐标(主画布将不会有screenX或screenY以上的背景)。如果您不需要移动和缩放,请关闭最后4个参数。 – markE