本文へスキップ

入力 ​

名前付きのアクションに、キー、ポインター、ゲームパッドを好きな組み合わせで割り当てます。あとはデバイスではなくアクションについて問い合わせるだけです。

ts
import { Input } from "@debuffjp/input";

const input = new Input(game, {
  bindings: {
    left: ["ArrowLeft", "KeyA", "PadLeft", "PadStickLeft"],
    right: ["ArrowRight", "KeyD", "PadRight", "PadStickRight"],
    jump: ["Space", "PadA", "Pointer"],
  },
});

// update(dt) の中で
player.vx = input.axis("left", "right") * speed;
if (input.pressed("jump")) jump();
  • down(action):いま押されている
  • pressed(action) / released(action):このステップで変化した(1 フレームより短いタップも取りこぼしません)
  • axis(negative, positive):−1、0、1 のいずれか

バインディング名 ​

入力元名前
キーボードKeyboardEvent.code の値:Space、KeyZ、ArrowUp…。キー配列に依存しません
ポインターPointer(マウスボタン、タッチ、ペン)
ゲームパッドのボタンPadA PadB PadX PadY PadL1 PadR1 PadL2 PadR2 PadSelect PadStart PadL3 PadR3 PadUp PadDown PadLeft PadRight
左スティックPadStickUp PadStickDown PadStickLeft PadStickRight

input.pointer からは、メインのポインターの論理座標 x/y と、アクティブなすべてのタッチ(touches)が取れます。