Я пишу игру на 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;
}
}
но это только сбой браузера.