2017-04-18 91 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; 
}