Ограничение движений сеткойJavascript

Форум по Javascript
Ответить
Гость
 Ограничение движений сеткой

Сообщение Гость »


Для контекста я использую ProcessingJS Ханской академии, в которой есть встроенная функция «рисования», которая постоянно вызывается. Когда я нажимаю, чтобы перейти к определенной точке, а затем во время перемещения щелкните, чтобы перейти к другой точке, иногда мой эллипс «игрока» покидает сетку, к которой я хочу, чтобы он придерживался.

// настройка переменной вар пХ = 210; вар pY = 210; вар мХ = 210; вар mY = 210; функция roundNum(число, приращение, смещение) { return Math.ceil((число - смещение) / приращение) * приращение + смещение; } // щелчок мышью mouseClicked = функция() { если (mouseButton===39){ mX = roundNum(mouseX,20,10); mY = roundNum(mouseY,20,10); } }; рисовать = функция() { // настройка рисования фон(255, 255, 255); // сетка (возможно, найдем способ упростить) ход(0, 0, 0); заполнить(255, 255, 255); // вертикальные линии линия (380 400 380,0); линия (360 400 360,0); линия (340 400 340,0); линия (320 400 320,0); линия (300,400,300,0); линия (280 400 280,0); линия (260 400 260,0); линия (240 400 240,0); линия (220 400 220,0); линия (200 400 200,0); линия (180 400 180,0); линия (160 400 160,0); линия (140 400 140,0); линия (120 400 120,0); линия (100 400 100,0); линия(80,400,80,0); линия(60,400,60,0); линия(40,400,40,0); линия(20,400,20,0); // горизонтальные линии линия (0,20,400,20); линия (0,40,400,40); линия (0,60,400,60); линия (0,80,400,80); линия (0,100,400,100); линия (0,120,400,120); линия (0,140,400,140); линия (0,160,400,160); линия (0,180,400,180); линия (0,200,400,200); линия (0,220,400,220); линия (0,240,400,240); линия (0,260,400,260); линия (0,280,400,280); линия (0,300,400,300); линия (0,320,400,320); линия (0,340,400,340); линия (0,360,400,360); линия (0,380,400,380); // движение, надеюсь. нетИнсульта(); заполнить(18, 235, 33); если(pX!==mX){ эллипс(mX,mY,10,10); } если(pY!==mY){ эллипс(mX,mY,10,10); } if(pX!==mX&&pY!==mY){ if (mX >= roundNum(pX,20,10)) { рХ+=2; } если (mX < roundNum(pX,20,10)) { рХ-=2; } } еще{ if (mX >= roundNum(pX,20,10)) { рХ+=2; } если (mX < roundNum(pX,20,10)) { рХ-=2; } if (mY >= roundNum(pY,20,10)) { рY+=2; } если (mY < ​​roundNum(pY,20,10)) { pY-=2; } } // игрок(?) заполнить (0, 0, 0); эллипс(pX,pY,10,10); // границы если (рХ > 390) { рХ=390; } если (pX < 10) { рХ=10; } если (pY > 390) { рY=390; } если (pY < 10) { рY=10; } // отладка нетИнсульта(); заполнить(235, 235, 235); четырехъядерный (0,0,75,0,75,80,0,80); заполнить (0, 0, 0); ход(255, 0, 0); линия(pX,pY,mX,mY); текст("pX = "+pX,10,10); text("pY = "+pY,10,25); текст("тест = "+ноль,10,40); текст("mX = "+mX,10,55); text("mY = "+mY,10,70); }; Я понятия не имею, как решить эту проблему.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»