私はHTML5ゲームを作っています。ユーザーがこのキーを押すと(zと言う)、文字が攻撃されます。しかし、現在のところ、私のコードでは、ユーザーはzを保持するだけでキャラクターが無期限に攻撃できるようになります。Javascriptで長押しを防止するにはどうすればよいですか?
この「長押し」が起こらないようにするコードを実装する必要があります。言い換えれば、ユーザがzを保持し続けると、キャラクタは最終的に攻撃を止めるので、ユーザはキーを押したままではなくzをタップし続ける必要があります。
私はHTML5ゲームを作っています。ユーザーがこのキーを押すと(zと言う)、文字が攻撃されます。しかし、現在のところ、私のコードでは、ユーザーはzを保持するだけでキャラクターが無期限に攻撃できるようになります。Javascriptで長押しを防止するにはどうすればよいですか?
この「長押し」が起こらないようにするコードを実装する必要があります。言い換えれば、ユーザがzを保持し続けると、キャラクタは最終的に攻撃を止めるので、ユーザはキーを押したままではなくzをタップし続ける必要があります。
keypress
またはイベントを使用している場合は、代わりにkeyup
を試してみてください。
リセットを行わない限り、1回だけ発動するフラグを実装できます。
var pressed = false;
window.addEventListener("keydown",()=>{
if(!pressed){
pressed = true;
//Do thing
}
}
window.addEventListener("keyup",()=>{
pressed = false;
}
代わりに 'keyup'を使用しますか? – tanmay
あなたは 'keydown'を使うことができます。この場合、ユーザーはキーを何度も押す必要があります – warl0ck
キープレスイベントのキャプチャ方法に関する現在のコードを表示してください。まだまだ[MCVE]を提供しています。 –