[英]Drawing a transparent image on mouse movement with JavaScript on a canvas
由SVG图像组成的棋盘游戏在HTML画布中绘制。 我想在鼠标悬停在画布上时用鼠标移动透明的游戏图像。 我想这样做,而不必每次移动鼠标都遍历游戏矩阵。 我能想到的唯一方法如下所示; 但是,绘制图像的最后一个位置仍然存在,从而导致以下效果:
做到这一点的最佳方法是什么?
canvas.addEventListener("mousemove", drawPieceAtMouse, false); function drawPieceAtMouse(event) { var rect = canvas.getBoundingClientRect(); var x = event.clientX - rect.left; var y = event.clientY - rect.top; context.save(); context.globalAlpha = 0.4; context.drawImage(players[turn].piece, x-25, y-25, 50, 50); context.restore(); }
使用此代码
canvas.addEventListener("mousemove", drawPieceAtMouse, false);
var canvasimg = new Image();
function updatecanvasimage(){
canvasimg = new Image();
canvasimg.src = canvas.toDataURL("image/png");
}
updatecanvasimage()//call this when you want changes to stay on the canvas
function drawPieceAtMouse(event) {
var rect = canvas.getBoundingClientRect();
var x = event.clientX - rect.left;
var y = event.clientY - rect.top;
context.drawImage(canvasimg,0 , 0,canvas.width,canvas.height);
context.globalAlpha = 0.4;
context.drawImage(players[turn].piece, x-25, y-25, 50, 50);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.