我想使用纯粹的JavaScript实现一个Canvas 扫雷游戏。 我使用了二维数组来创建网格。在游戏中,我需要检测左右鼠标点击事件,每个事件将执行不同的操作。我的研究指向了mousedown
、mouseup
和contextmenu
事件,但是我的代码似乎不能正常运行,因为鼠标右键单击也会触发mouseup事件。有谁能帮我理解如何区分这两种事件? 我看到了一些示例,使用了event.which
,其中左键单击是event.which === 0
,右键单击是event.which === 2
,但是只适用于按钮,就我所知。
canvas.addEventListener('mouseup', function(evt) {
let x1 = Math.floor(evt.offsetX/(canvas.height/rows));
let y1 = Math.floor(evt.offsetY/(canvas.width/cols));
draw (y1, x1); //this is my drawing functions (draws the numbers, bombs)
}, false);
canvas.addEventListener('contextmenu', function(evt) {
let j = Math.floor(evt.offsetX/(canvas.height/rows));
let i = Math.floor(evt.offsetY/(canvas.width/cols));
ctx.drawImage(flagpic, j*widthCell+5, i*widthCell+2, widthCell-9,
widthCell-5); //draws the flag where right mouse clicked
}, false);