やりたいこと
Phaser3でキー入力があったときに任意の関数を実行します。
以下の方法で登録し
this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.A);
updateの中で上記返り値の以下の値を取得することで、任意のコードを実行することはできます。
isDown
しかし行動以外のキーイベント(例えばポーズやリトライ)などはUpdateの中に書かない方がいいと思います。
onによる実装
以下のようにOnで実装することができます。
だいたいの場合Createで呼ぶのがいいと思います。
Spaceキーが入力されるとlistenerが実行されます。
this.input.keyboard.on('keydown-SPACE', listener);
‘keydown-SPACE’のSPACE部分は任意のキーに書き換えが可能です。’keydown-A’に変更することで、Aキーが入力された場合に実行されるようになります。
listenerはEventを引数にする関数です。
関数を定義しなくても以下の用に記載も可能です。
this.input.keyboard.on('keydown-SPACE', event =>
{
//処理
});
結果
キー入力をあった場合、Updateを使用せずに処理ができるようになりました。
参考にさせていただいたサイト
Phaser 3 Examples
コメント