Javascript keylistener不';我一开始不工作

Javascript keylistener不';我一开始不工作,javascript,Javascript,我的程序就像一个反应游戏。按下“向上箭头”时,背景颜色变为红色。你需要在2秒内按下按钮。如果你不按,你就输了,否则比赛就继续进行。但在前2秒你输了,但比赛进行得很顺利。那么,代码在前2秒有什么问题 我的代码: varido=2000; var nyomott=0; var nemelso=0; //>>main() 函数main(){ 尼奥莫特=0; var r=Math.floor(Math.random()*4); var szin; 开关(r){ 案例0: szin=“红色”; 打破 案

我的程序就像一个反应游戏。按下“向上箭头”时,背景颜色变为红色。你需要在2秒内按下按钮。如果你不按,你就输了,否则比赛就继续进行。但在前2秒你输了,但比赛进行得很顺利。那么,代码在前2秒有什么问题

我的代码:

varido=2000;
var nyomott=0;
var nemelso=0;
//>>main()
函数main(){
尼奥莫特=0;
var r=Math.floor(Math.random()*4);
var szin;
开关(r){
案例0:
szin=“红色”;
打破
案例1:
szin=“绿色”;
打破
案例2:
szin=“黄色”;
打破
案例3:
szin=“蓝色”;
打破
}
var print=“”+”Pess键:“+”
“+szin+”+“+”
”; document.getElementById(“结果”).innerHTML=print; startTimer(); } var ciklus=设定间隔(起始时间,ido); //>>startTimer():此函数启动计时器 函数startTimer(){ timerId=setTimeout(函数(){ if(nyomott==0){ document.getElementById(“结果”).innerHTML=“丢失”; clearInterval(ciklus); }否则{ main(); } },ido); } 文档.添加的事件列表器(“向下键”,函数(inEvent){ 如果(inEvent.keyCode==38){ document.body.style.backgroundColor=“红色”; 尼奥莫特=1; 控制台日志(nyomott); }如果(inEvent.keyCode==404)document.body.style.backgroundColor=“绿色”,则为else; else if(inEvent.keyCode==405)document.body.style.backgroundColor=“黄色”; 如果(inEvent.keyCode==406)document.body.style.backgroundColor=“蓝色”,则为else; });
正文{
宽度:100%;
身高:100%;
背景色:#202020;
}
div{
位置:绝对位置;
身高:100%;
宽度:100%;
显示:表格;
字体大小:60px;
颜色:#ffffff;
}
h1{
显示:表格单元格;
垂直对齐:中间对齐;
文本对齐:居中;
颜色:#FFFFFF;
}

问题是在
函数main()中设置
nyomott=0满足打印“丢失”的函数startTimer()中的条件

做了一些调整

//将变量向上推到事件侦听器函数之上,以便能够设置nyomoto=1
var ido=2000;
var nyomott=0;
var nemelso=0;
文档.添加的事件列表器(“向下键”,函数(inEvent){
如果(inEvent.keyCode==38){
document.body.style.backgroundColor=“红色”;
尼奥莫特=1;
控制台日志(nyomott);
}else if(inEvent.keyCode==404)
document.body.style.backgroundColor=“绿色”;
else if(inEvent.keyCode==405)
document.body.style.backgroundColor=“黄色”;
else if(inEvent.keyCode==406)
document.body.style.backgroundColor=“蓝色”;
});
函数main(){
var r=Math.floor(Math.random()*4);
var szin;
开关(r){
案例0:
szin=“红色”;
打破
案例1:
szin=“绿色”;
打破
案例2:
szin=“黄色”;
打破
案例3:
szin=“蓝色”;
打破
}
var print=“”+”Pess键:“+”
“+szin+”+“+”
”; document.getElementById(“结果”).innerHTML=print; startTimer(); } var ciklus=设定间隔(起始时间,ido); //此功能启动计时器 函数startTimer(){ timerId=setTimeout(函数(){ if(nyomott==0){ document.getElementById(“结果”).innerHTML=“丢失”; clearInterval(ciklus); }否则{ main(); } },ido); }
正文{
宽度:100%;
身高:100%;
背景色:#202020;
}
div{
位置:绝对位置;
身高:100%;
宽度:100%;
显示:表格;
字体大小:60px;
颜色:#ffffff;
}
h1{
显示:表格单元格;
垂直对齐:中间对齐;
文本对齐:居中;
颜色:#FFFFFF;
}


是的,但经过修改后,一旦按下按钮,游戏将永远不会停止。但如果我写“nyomott=0”,它会被窃听。如果没有按下按钮,我如何解决它以停止游戏?您必须更改
nyomott=0设置为1后2000毫秒后非常感谢:D