Class

InputManager

stdgam.InputManager()

キー入力を管理するクラス. GameEngineのinput要素に格納され, キー入力の管理に利用される.

Constructor

# new InputManager()

View Source stdgam.js, line 311

Methods

# checkInput(codes1, codes2, busyFlag) → {Array.<(?string|number)>}

キー入力のチェックを補佐する関数. 「キーを押し続けたときに毎フレーム反応するのでは困るが, 一定の間隔が 空いていればキーを離していなくてもキー入力を受け付けたい」ケースに用いる.

具体的には, 次の処理を実行する.

  1. もし codes1 の中に isJustPressed が真のものがあれば, そのような一番最初のキーコードとそのインデックスの組を返す.
  2. さらに, (1)に該当するものが無く, かつbusyFlagが偽のとき, codes2 の中で isDown が真である最初のキーを探す. 見つかればそのキーコードとインデックスの組を返す.
  3. 上記のどちらにも該当しないとき, [null, -1]を返す.

【注意】インデックスはあくまで利用時の利便性のために返している. インデックスだけではどちらのリストのものか判別できないので注意.

Parameters:
Name Type Default Description
codes1 Array.<string>

isJustPressedで判定するキーのリスト

codes2 Array.<string> null

busyでなければisDownで済ませてもよいキーのリスト

busyFlag boolean true

trueならばisJustPressedによる判定だけを行う. falseならば一部のキー (codes2の要素) についてisDownで判定を代用する.

View Source stdgam.js, line 380

条件を満たすキーが見つかったとき, そのキーコードと, codes1またはcodes2におけるインデックスの組を返す.

Array.<(?string|number)>

# isDown(code) → {boolean}

そのキーが今押されているか調べる.

Parameters:
Name Type Description
code string

調べるキーのコード値

View Source stdgam.js, line 344

押されていればtrue, そうでなければfalse

boolean

# isJustPressed(code) → {boolean}

そのキーが「今は押されている」かつ「1フレーム前は押されていなかった」とき trueを返す. そうでないとき, falseを返す.

Parameters:
Name Type Description
code string

調べるキーのコード値

View Source stdgam.js, line 354

条件を満たすならばtrue, そうでなければfalse

boolean

# sync()

シーン切り替え時に「今押されているキー」を「前から押されていたこと」にする. これにより, 新しいシーンでisJustPressedが最初からtrueになるのを防ぐ (現時点の実装はupdate()と同じ挙動だが, 念のため別途定義しておく).

View Source stdgam.js, line 335

# update()

現在の状態を「1フレーム前の状態」としてコピーする.

View Source stdgam.js, line 326