Функция, которая возвращает ввод с клавиатуры при получении - PullRequest
1 голос
/ 24 апреля 2019

Я пишу игру на JavaScript с использованием HTML canvas. Мне нужна функция, которая ждет, пока пользователь даст ввод с клавиатуры в указанном диапазоне, а затем вернется в место, где она была вызвана.

У меня есть прослушиватели событий для освобождения ключа, которые передают значение в переменную "selectedInput", только если для параметра "waitForInput" задано значение true. К сожалению, эта куча кода не работает. Он просто не возвращается в место вызова.

var getInput = function (startingIndex, endingIndex){
    waitingForInput = true;
    startingIndex = startingIndex? startingIndex: 1;//default range
    endingIndex = endingIndex? endingIndex: 6;
    if (collectedInput==0&&waitingForInput){
        setTimeout(getInput(startingIndex, endingIndex), 1000);
    }
    else if (collectedInput<startingIndex||collectedInput>endingIndex){
        setTimeout(getInput(startingIndex, endingIndex), 1000);
    }
    else{
        waitingForInput = false;
        return collectedInput;
    }
}

Я также пробовал:

var getInput = function(){
    while (collectedInput==0){
        pause(10);
    }
    return;
}
function pause(numberMillis) { 
    var now = new Date(); 
    var exitTime = now.getTime() + numberMillis; 
    while (true) { 
        now = new Date(); 
        if (now.getTime() > exitTime) 
            return; 
    } 
} 

но это только сбой браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...