Я хочу реализовать игру Canvas сапера, используя простой javascript. Я использую 2D-массив для своей сетки. Для игры мне нужно обнаруживать щелчки правой и левой кнопкой мыши, каждый из которых будет делать разные вещи. Мое исследование направило меня на 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);