如何检测 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');
}
}
所以我是 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');
}
}