2017-04-18 9 views
1

私はHTML5ゲームを作っています。ユーザーがこのキーを押すと(zと言う)、文字が攻撃されます。しかし、現在のところ、私のコードでは、ユーザーはzを保持するだけでキャラクターが無期限に攻撃できるようになります。Javascriptで長押しを防止するにはどうすればよいですか?

この「長押し」が起こらないようにするコードを実装する必要があります。言い換えれば、ユーザがzを保持し続けると、キャラクタは最終的に攻撃を止めるので、ユーザはキーを押したままではなくzをタップし続ける必要があります。

+4

代わりに 'keyup'を使用しますか? – tanmay

+2

あなたは 'keydown'を使うことができます。この場合、ユーザーはキーを何度も押す必要があります – warl0ck

+8

キープレスイベントのキャプチャ方法に関する現在のコードを表示してください。まだまだ[MCVE]を提供しています。 –

答えて

-2

keypressまたは​​イベントを使用している場合は、代わりにkeyupを試してみてください。

1

リセットを行わない限り、1回だけ発動するフラグを実装できます。

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

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