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

时间:2019-02-06 12:29:45

标签: javascript phaser-framework

所以我是Phaser的新手。在我的游戏中,我需要检测何时按下“ W”和“ S”键。我查阅了文档,但找不到。请帮帮我。

2 个答案:

答案 0 :(得分:1)

首次设置Phaser.Scene时,需要绑定到输入/键盘事件并相应地触发功能。

由于您实际上是在询问它的紧迫性,因此建议您检查keydown事件。

create()中,使用以下命令注意 W 键:

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

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

根据您的逻辑,您可以指向相同的功能,也可以使用其他功能。为此将传递触发它的输入事件,这是您可以根据需要确定触发它的键的方式。这是J.Do posted in their answer的片段,我已经对其进行了调整。

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');
    }
}

答案 1 :(得分:0)

您应该可以使用以下代码进行检测:

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