入力
名前付きのアクションに、キー、ポインター、ゲームパッドを好きな組み合わせで割り当てます。あとはデバイスではなくアクションについて問い合わせるだけです。
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)が取れます。