2017-04-18 59 views
1

我正在制作HTML5游戏。当用户按下这个键(让我们说z)角色攻击。但是,目前在我的代码中,用户只能持有z以便角色无限期地攻击。如何防止Javascript长按?

我需要实现一个代码,以防止发生这种“长按”。换句话说,如果用户持续持有z,角色最终会停止攻击,所以用户必须继续攻击z而不是仅仅按住键。

+4

使用'keyup'呢? – tanmay

+2

您可以用'keydown'所以在这种情况下,用户将不得不一次又一次 – warl0ck

+8

按键请出示你如何捕捉按键事件当前的代码。最好还是提供一个[MCVE]。 –

回答

-2

如果您使用keypress或​​事件,请尝试使用keyup来代替。

1

你可以实现一个只会触发一次的标志,除非重置。

var pressed = false; 
window.addEventListener("keydown",()=>{ 
    if(!pressed){ 
    pressed = true; 
    //Do thing 
    } 
} 

window.addEventListener("keyup",()=>{ 
pressed = false; 
}