Yan*_*nic 5 javascript html5 html5-canvas
我正在学习JavaScript,我正在尝试编写一个小游戏.当我按住一个键时,我希望我的游戏中的某些内容始终如一地移动.这是我到目前为止提出的:
document.onkeydown = onKeyDownListener;
function onKeyDownListener(evt) {
var keyCode = evt.which || evt.keyCode;
if(keyCode == 37) {
move();
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我按下键移动被调用一次,然后有一个暂停,然后暂停移动被重复调用,因为我打算.它是这样的:m ...... mmmmmmmmm当'm'代表移动和'.' 暂停.有没有办法摆脱暂停?
这是一个发生了什么的GIF:
小智 2
你可以试试这个:
document.onkeydown = onKeyDownListener;
var keyDown = false;
function onKeyDownListener(evt) {
if(evt.keyCode == 37) {
keyDown = true;
}
}
document.onkeyup = function(evt){
if(evt.keyCode == 37) {
keyDown = false;
}
}
setInterval(function(){
if(keyDown){
player.x--;
}
},20)
Run Code Online (Sandbox Code Playgroud)
我知道这并不理想,但我最好的猜测是这是按键检测的问题。这样,只要您按住该键,它就会移动,直到您松开该键为止。