Как определить событие onclick по элементу в canvas?

Есть рабочий код:

cvs.onmousemove = function() {
  mouseX = event.offsetX;
  mouseY = event.offsetY;
  if (mouseX >= centerPosX(cvs) - centerPosX(restart) && mouseX <= (centerPosX(cvs) - centerPosX(restart)) + restart.width && mouseY >= centerPosY(cvs) && mouseY <= centerPosY(cvs) + restart.height) {

    console.log(mouseX); //Координаты мыши Х
  }
}

В данном коде вначале отслеживаются координаты мыши и записываются в переменную. Далее условие - если мышь находится в пределах нужных мне координат, то выводим в консоль координаты мыши X

ВОПРОС: Нужно добавить в условие код, который будет отслеживать клик по этим координатам. Типа в конце условия должно быть что то типа && restart.onclick (restart - это кнопка(спрайт) по которой надо жать и именно её координаты указаны в условии)

Всё что я пробовал - не работает и гугл не помогает.


Ответы (1 шт):

Автор решения: Денис Беспалов

РЕШЕНИЕ

cvs.onmousemove = function() {
  mouseX = event.offsetX;
  mouseY = event.offsetY;
  if (mouseX >= centerPosX(cvs) - centerPosX(restart) && mouseX <= (centerPosX(cvs) - centerPosX(restart)) + restart.width && mouseY >= centerPosY(cvs) && mouseY <= centerPosY(cvs) + restart.height) {
    cvs.onclick = function() {
      console.log(`Ура! Работает!`);
    }
  } else {
    cvs.onclick = null;
  }
}

В тело функции if я добавил:

cvs.onclick = function() {
  console.log(`Ура! Работает!`);
}

И добавил к if логический оператор else, который будет убирать отслеживание клика, если курсор не в заданной области.

→ Ссылка