繁体   English   中英

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

[英]How to detect specific keypress in Phaser 3?

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

当您第一次设置Phaser.Scene您需要绑定到输入/键盘事件并相应地触发您的功能。

由于您实际上询问了按下它的情况,因此我建议您检查keydown事件。

create()使用以下命令监视W键:

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM