【发布时间】:2018-05-24 01:26:08
【问题描述】:
我想用普通的 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);
【问题讨论】:
标签: javascript html canvas mouseevent mouseup