如何检测 Phaser 3 中的特定按键?

How to detect specific keypress in Phaser 3?

所以我是 Phaser 的新手。在我的游戏中,我需要检测何时按下 'W' 和 'S' 键。我查阅了文档,但无法弄清楚。请帮帮我。

你应该可以用下面的代码检测到:

let code = event.keyCode;

if(code == Phaser.Input.Keyboard.KeyCodes.W)
{
    // do something
}

第 3 阶段示例作为参考:

http://labs.phaser.io/edit.html?src=src/input/keyboard/retro%20leaderboard.js

当您第一次设置 Phaser.Scene 时,您需要绑定到 input/keyboard 事件并相应地触发您的功能。

既然你真的问了按下它的问题,我建议检查 keydown 事件。

create() 中使用以下命令寻找 W 键:

create() {
    // ...
    this.input.keyboard.on('keydown_W', this.yourFunction, this);
    // ...
}

现在,当按下 W 按钮时,将调用 yourFunction 方法。 S 以类似的方式设置。

您可以指向同一函数,也可以使用不同的函数,具体取决于您的逻辑。触发它的输入事件将传递给它,如果需要,您可以通过这种方式确定哪个键触发了它。这是 的片段,我已经对其进行了调整。

yourFunction(event) {
    // Here you can see what's passed when Phaser triggers it.
    console.log(arguments);

    if (event.keyCode === Phaser.Input.Keyboard.KeyCodes.S) {
        console.log('S was pressed');
    } else if (event.keyCode === Phaser.Input.Keyboard.KeyCodes.W) {
        console.log('W was pressed');
    }
}