• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascript スムーズな動作)

javascriptスムーズな動作について

このQ&Aのポイント
  • javascriptを使用してキー操作による要素の動作を実現する際に、一度の操作ではスムーズな動きができない場合の解決方法について質問です。
  • 質問内容は、十字キーの押しっぱなしによって要素を連続的に移動させる際に、最初の動作の後に一時的な停止が生じる状態を解消する方法についてです。
  • どのようにすればキーを押した瞬間からスムーズな動きを実現できるのか、アドバイスをいただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • taseki
  • ベストアンサー率66% (155/233)
回答No.1

おそらくリピートキーイベントが発生するまでの時間のことをおっしゃっているのだと思います。 キーを押すとkeyDownイベントが発生し、それからリピートキーイベントが発生するまでのインターバルはシステムによって管理されています。 キャラクターの移動などでは、キーイベントから直接キャラクターを移動させるのではなく、「移動中」フラグを別に用意して、(キーではなく)タイマーによって『「移動中」フラグがONなら移動を続ける』サブルーチンを作っておき、keyDownイベントでは「移動中」フラグをONにして上記ルーチンを呼び出す、keyUpイベントでは「移動中」フラグをOFFにする、というようにします。

skip_jack
質問者

お礼

教えていただきましたように、キーの押・離をフラグで管理して、それを一定時間ごとに見に行くようにすると思うとおりの動きが実現できました。 一人ではこの方法思いつかなかったと思います。 ありがとうございました。

関連するQ&A