地図/気まぐれ/ゲームの手触り

矢印キーで動かす

keyboard(signal) は二つの読み方を返す。down(key) は毎フレーム呼ぶ poll 型で、キーが押されている間ずっと true を返す。押しっぱなしで進み続ける移動のような継続入力に向く。渡す signal は AbortSignal で、プレビューが閉じたときに登録した listener を自動で外すために使う。setup で keyboard(signal) を一度だけ作り、その返り値をループから読む。

setup の引数に signal を足して keyboard(signal) を呼ぶ。返ってきた key から、矢印キーの押下を毎フレーム聞く。押されている向きへ speed ぶん座標を足し、画面の端でクランプする。

プレビューをクリックして矢印キーを押すと、点が押した向きへ進む。down は押している間ずっと true を返すので、毎フレーム speed ぶん動く。左と上を同時に押せば両方の if が通って左上へ走る。背景を毎フレーム薄い半透明で塗るので、軌跡が残像として薄く尾を引く。

down が拾えるのは「いま押されているか」だけで、「押した瞬間に一回きり」は表せない。押しっぱなしでも一度しか起きてほしくない切り替えやジャンプには、別の読み方がいる。