按此键不触发Javascript中的脚本

按此键不触发Javascript中的脚本,javascript,html,css,Javascript,Html,Css,我现在正在学习java脚本,不知道这个问题。宇宙飞船没有移动,没有错误?当我按键盘上的w时,它什么也不做。我认为问题出在document.onekeydown=function(e){上,但我不知道问题出在哪里 let KEY_SPACE=false; 设KEY_W=false; 设KEY_S=false; 让画布; 让ctx; 让backgroundImage=新图像(); 让宇宙飞船={ x:50, y:200, 宽度:100, 身高:100, src:'img/spaceship.png

我现在正在学习java脚本,不知道这个问题。宇宙飞船没有移动,没有错误?当我按键盘上的
w
时,它什么也不做。我认为问题出在document.onekeydown=function(e){上,但我不知道问题出在哪里

let KEY_SPACE=false;
设KEY_W=false;
设KEY_S=false;
让画布;
让ctx;
让backgroundImage=新图像();
让宇宙飞船={
x:50,
y:200,
宽度:100,
身高:100,
src:'img/spaceship.png'
};
让摇滚乐={
x:100,
y:200,
宽度:200,
身高:80,
src:'img/rock.png'
};
document.onekeydown=函数(e){
console.log(例如keyCode);
如果(e.keyCode==32){
KEY_SPACE=true;
}
如果(e.keyCode==87){**,我想问题在这里**
KEY_W=真;
}
如果(e.keyCode==83){
KEY_S=真;
}
};
document.onekeyup=函数(e){
console.log(例如keyCode);
如果(e.keyCode==32){
KEY_SPACE=false;
}
如果(e.keyCode==87){
KEY_W=false;
}
如果(e.keyCode==83){
KEY_S=false;
}
};
函数startName(){
canvas=document.getElementById('canvas');
ctx=canvas.getContext('2d');
loadImages();
draw();
setInterval(函数更新(){
如果(图例W){
宇宙飞船y-=1;
}
如果(关键){
宇宙飞船y=1;
}
控制台日志(“Hi”);
}, 1000);
}
函数loadImages(){
backgroundImage.src='img/bg.png';
spaceship.img=新图像();
spaceship.img.src=spaceship.src;
rock.img=新图像();
rock.img.src=rock.src;
}
函数绘图(){
请求动画帧(绘制);
ctx.drawImage(背景图像,-100,0874562);
ctx.drawImage(spaceship.img,spaceship.x,spaceship.y,spaceship.width,spaceship.height);
}
画布{
背景色:暗灰色;
}

首先,方法
onekeydown()
似乎不存在,您的意思可能是
onkeydown()

第二,你只检查键输入每秒钟,这是不健全的,因为你可能会错过输入或产生输入滞后。因此,你应该考虑改变飞船的价值直接在<代码> OnKEY下()/代码>和<代码> ONKEP UP()/代码>方法。< /P> < P> AS @ Oscar Umhin提到看到这个

let KEY_SPACE=false;
设KEY_W=false;
设KEY_S=false;
让画布;
让ctx;
让backgroundImage=新图像();
让宇宙飞船={
x:50,
y:200,
宽度:100,
身高:100,
src:'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSknVdXFn_hKNZqIkhf2n2mJ7seozp3S3pzJwQSFPJHCKVrgkEMJ1QOR8CLCSrOXbdGpE0&usqp=CAU'
};
让摇滚乐={
x:100,
y:200,
宽度:200,
身高:80,
src:'https://img.favpng.com/18/3/2/asteroid-space-rock-outer-space-comet-png-favpng-xTh5n6HtQqakzdAebMJ4Tn5Eb_t.jpg'
};
document.onkeydown=函数(e){
console.log(例如keyCode);
如果(e.keyCode==32){
KEY_SPACE=true;
}
如果(e.keyCode==87){
KEY_W=真;
}
如果(e.keyCode==83){
KEY_S=真;
}
更新();
};
document.onkeyup=函数(e){
console.log(例如keyCode);
如果(e.keyCode==32){
KEY_SPACE=false;
}
如果(e.keyCode==87){
KEY_W=false;
}
如果(e.keyCode==83){
KEY_S=false;
}
};
函数startName(){
canvas=document.getElementById('canvas');
ctx=canvas.getContext('2d');
loadImages();
draw();
}
函数更新(){
如果(图例W){
宇宙飞船y-=1;
}
如果(关键){
宇宙飞船y=1;
}
控制台日志(“Hi”);
}
函数loadImages(){
backgroundImage.src=https://orsted.com/-/media/WWW/Images/Corp/Campaign/SpaceSafari/space-safari-background.png';
spaceship.img=新图像();
spaceship.img.src=spaceship.src;
rock.img=新图像();
rock.img.src=rock.src;
}
函数绘图(){
请求动画帧(绘制);
ctx.drawImage(背景图像,-100,0874562);
ctx.drawImage(spaceship.img,spaceship.x,spaceship.y,spaceship.width,spaceship.height);
}
画布{
背景色:暗灰色;
}


onkeydown;“在“keydown”活动中,请这样做”非常感谢您也非常感谢您