Показать сообщение отдельно
  #2 (permalink)  
Старый 28.01.2021, 19:44
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,692

const canvas = document.getElementById("TFG");
const ctx = canvas.getContext("2d");
 
var mgx = [];
var mgy = [];
 
 
canvas.onmousedown = function(event) {
 
  var x = event.offsetX;
  var y = event.offsetY;
  x = Math.floor(x/30); //работаем с боксами 30x30 пикселей по X
  y = Math.floor(y/30); //и по Y соответственно
  mgx.push(x);
  mgy.push(y);
  console.log(mgx);
  console.log(mgy);
  canvas.onmousemove = function(event) {
 
    var x = event.offsetX;
    var y = event.offsetY;
    x = Math.floor(x/30);
    y = Math.floor(y/30);
    let exist = false;
    for (var i=0; i < mgy.length; i++) {
      if (x == mgx[i] && y == mgy[i]) {
        exist = true;
        break;
      }
    }
    if (! exist) {
        mgx.push(x);
        mgy.push(y);
    }
    if (mgy.length == 16)  canvas.onmousemove = null;
 }

   
    canvas.onmouseup = function() {
      canvas.onmousemove = null;
      canvas.onmouseup = null;
    }
}

В принципе ваш код тоже может работать, если ошибку исправить
for (var i=0; i < mgy.lenght; i++) {

Последний раз редактировалось voraa, 28.01.2021 в 20:06.
Ответить с цитированием