如何仅在按下键时更改值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何仅在按下键时更改值?相关的知识,希望对你有一定的参考价值。

我试图制作一个代码,当我按下箭头键时球只会移动,当我放开它停止时,它会继续移动。我怎样才能解决这个问题?

这是我编写的代码的一部分:

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;
}
答案

然后将你的值设置为0上的else。使用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;              
}

以上是关于如何仅在按下键时更改值?的主要内容,如果未能解决你的问题,请参考以下文章

JTable keypressed 事件仅在按下的第一个键时触发

Pygame:如何在不按任何键的情况下使精灵面对相同的方向

在 Monogame 中按下键时,我需要帮助上下移动精灵

如何防止 C# WinForm 列表视图选择更改时按下键和列表视图根据第一列自动查找下一行

按下键时播放音调C#

WPF - 按下CTRL + SHIFT时如何捕获?