Как определить конкретное нажатие клавиш в Phaser 3? - PullRequest
0 голосов
/ 06 февраля 2019

Итак, я новичок в Фазере.В моей игре мне нужно определять, когда нажимаются клавиши «W» и «S».Я посмотрел документацию, но не смог понять.Пожалуйста, помогите мне.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

При первой настройке Phaser.Scene вам нужно будет привязать события ввода / клавиатуры и соответственно активировать свои функции.

Поскольку вы действительно спрашивали о нажатии, я бы рекомендовал проверить наличиеkeydown событие.

В create() следите за клавишей W , используя следующую команду:

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

Теперь, когда W нажата кнопка, будет вызван метод yourFunction. S настроен аналогичным образом.

Вы можете указать одну и ту же функцию или использовать другую, в зависимости от вашей логики.Для этого будет передано событие ввода, которое вызвало его, и именно так вы можете, если хотите, определить, какой ключ вызвал его.Это фрагмент, который J.До написал в своем ответе , и который я настроил.

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');
    }
}
0 голосов
/ 06 февраля 2019

Вы должны быть в состоянии обнаружить с помощью кода ниже:

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

...