在<canvas>中移动图像而不重绘整个画布?</canvas>

时间:2011-04-29 20:36:56

标签: javascript html5

我已经制作了一个游戏板,我想拖放我的碎片(.gif's)但我无法找到一种方法来做到这一点,而不必无休止地重新绘制整个棋盘,因为我必须每个都清除一块时间它移动1个像素,并清除它下面的任何东西(板和其他部分)。它甚至可能吗?

1 个答案:

答案 0 :(得分:7)

是的,您每次都需要重新绘制整个电路板。

您可以使用的一种技术是屏幕外画布:

var board = document.createElement("canvas");
board.width = width;
board.height = height;

var boardContext = board.getContext("2d");

// rendering code for board
// ...

// now draw board onto main canvas
var context = mainCanvas.getContext("2d");

context.drawImage(board, ...);

电路板画布在屏幕上不可见,但它将存储在内存中,这样每次需要重新渲染时,它都会很快渲染。

相关问题