Как заставить цикл ждать событие?

137
13 сентября 2019, 00:50

Начал учить JS и возникло желание написать небольшую игру, по типу "показывается цифра в блоке и вам нужно ее ввести за определенное время". Так вот, не могу понять как заставить цикл for ждать пока я нажму определенную кнопку клавиатуры. Пробовал в этот цикл поместить while и в нем отслеживать нажатие кнопки, но страница все время грузится и не реагирует на нажатие:

while (temp!=0){
        $("body").keyup(function(e) {
            if (e.keyCode == 82) {
                checkInput(mas[full][round]);
                console.log("HP: " + health);
                if (health<=0) break;
                temp=0;
            }
        });
    }

Полный код (без моей тупой попытки):

var mas = [[1, 2, 3, 4, 5], [1,2,3,4,5], [2,3,4]];
var health = 3;
for (var full = 0; full < mas.length; full++) {
    for(var round = 0; round < mas[full].length; round++) {
        //код для проверки нажатия
        //если кнопка нажата то мы сравниваем последнюю введеную цифру с текущей итерацией цикла (mas[full][round])
        checkInput(mas[full][round]);
        console.log("HP: " + health);
        if (health<=0) break;   
    }
    if (health<=0) break;   
}
function checkInput(skill) {
    console.log(skill);
    if (skill == 1) health++;
    if (skill != 1) health--;
    if (health>3) health=3;
    if (health<0) health=0;
    return skill, health;
}
READ ALSO
fetch запрос POST

fetch запрос POST

Конструктор в классе Category:

146
Как нарисовать ёлку используя только символы “_” и “*”?

Как нарисовать ёлку используя только символы “_” и “*”?

Начал изучать javascriptЗастрял на задаче

127
Uncaught TypeError: undefined is not a function

Uncaught TypeError: undefined is not a function

Почему выбивает ошибку для:

145
Nuxt.js и определение координат внутри страницы сайта

Nuxt.js и определение координат внутри страницы сайта

Есть такая задача: Например у меня на странице есть хедер(шапка сайта) которую я хотел бы показывать только при прокрутке страницы вниз на какое...

122