javascript - 如何仅在按下某个键时更改值?

标签 javascript for-loop while-loop keypress

我试图编写一个代码,其中球仅在我按下箭头键时移动,当我放开它时它会停止,但它会继续移动。我该如何解决这个问题?

这是我编写的代码部分:

document.onkeydown = function tast (e) {
    if (e.keyCode == 39) {  // høyre
        høyre = 1;  
    } else {
        høyre = 0;
        console.log("ikke høyre")
    }
    if (e.keyCode == 37) {  // venstre
        venstre = 1;  
    } else {
        venstre = 0;
    }
    if (e.keyCode == 38) {  // opp 
        opp = 1; 
    } else {
        opp = 0;
    }
    if (e.keyCode == 40) {  // ned
        ned = 1;              
    } else {
        ned = 0;
    }
}

if (venstre == 1){
    kuler[0].x -= 4;
}
if (høyre == 1){
    kuler[0].x += 4;;
}
if (opp == 1){
    kuler[0].y -= 4;
}
if (ned == 1){
    kuler[0].y += 4;
}

最佳答案

其他,然后将 else 上的值设置为 0。使用 onkeyup 事件处理程序。然后将 onkeypress 的值设置为 1。并且 onkeyup 将它们设置为 0:

document.onkeydown = function tast (e) {
    if (e.keyCode == 39) høyre = 1;  
    if (e.keyCode == 37) venstre = 1;  
    if (e.keyCode == 38) opp = 1; 
    if (e.keyCode == 40) ned = 1;              
}

document.onkeyup = function tast2 (e) {
    if (e.keyCode == 39) høyre = 0;  
    if (e.keyCode == 37) venstre = 0;  
    if (e.keyCode == 38) opp = 0; 
    if (e.keyCode == 40) ned = 0;              
}

关于javascript - 如何仅在按下某个键时更改值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27389014/

相关文章:

c - 在 while 循环中重置值

python - While 在 Python 中用单引号循环一个条件

javascript - appspot 上的 cookiechoices 不起作用

javascript - Chrome 扩展和翻译

javascript - 可以使用 Pushwoosh Remote API + Phonegap 发送基于 GeoZones 的推送

javascript - 我可以用 jQuery 或 JavaScript 更改此 CSS 吗?

C++ Visual Studio-运算符重载中的空循环会导致调试错误?

javascript - 如何在 <td></td> 的每四个循环项之后添加 <tr></tr>

Python for 循环和 if 语句

PHP在多个循环中获取总数