我正在用HTML画布用JavaScript编写游戏。我需要一个函数,等待用户在指定范围内从键盘提供输入,然后返回到被调用的地方。
我有用于键释放的事件侦听器,仅当'waitingForInput'为true时,才将值传递给变量'collectedInput'。可悲的是,这堆代码不起作用。它只是不返回呼叫位置。
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;
}
}
但它只会使浏览器崩溃。