[英]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.