Измените свойство setInterval, чтобы повысить чувствительность игры, не работает (js) - PullRequest
0 голосов
/ 02 августа 2020

Я создаю игру и хочу изменить свойство setInterval, чтобы увеличить игровую чувствительность космического корабля (показано в коде как setInterval (l oop, 1000/40)). Я разместил ползунок диапазона, который идет с позиций 1, 2 и 3. Вот код:

Ползунок диапазона:

<input type="range" id="sensibilty" min="1" max="3" value="2">

Чувствительность

const loop = function() {
if (keys[37] || keys[65]) {pos.left -= 10}
if (keys[39] || keys[68]) {pos.left += 10}
if (keys[38] || keys[80]) {pos.top -= 1}
if (keys[40] || keys[75]) {pos.top += 1}}
let sens = setInterval(loop, 1000 / 40);
let sensibilty = document.getElementById("sensibilty").value;
if (sensibilty == "1") {clearInterval(sens); setInterval(loop, 1000 / 30)}
else if (sensibilty == "3") {clearInterval(sens); setInterval(loop, 1000 / 60)}

Этот код не работает, есть идея изменить значения setInterval? Спасибо!

1 Ответ

0 голосов
/ 02 августа 2020

Вы должны сохранить интервал, чтобы его можно было очистить.

let interval = setInterval(loop, 1000 / 40) //THAT IS SENSIBILITY

if (sensibilty == 1) {clearInterval(interval); setInterval(loop, 1000 / 30)} 
else if (sensibilty == 3) {clearInterval(interval); setInterval(loop, 1000 / 60)} 
...