Виртуальный игровой контроллер - PullRequest
1 голос
/ 19 июня 2019

Я использую Phaser 3.18, и я добавил изображения стрелок в свою игру, чтобы она работала на мобильных устройствах (похоже на игровой контроллер), и я не могу заставить работать стрелку влево и вправо. Я сделал их как переменные:

var leftArrow = this.add.image(80,500,'leftArrow').setInteractive().setScrollFactor(0).setScale(1/6);

Я пытался сделать это с помощью (это в функции «обновления»)

leftArrow.on('pointerover', function () {
    moveLeft();
})
.on('pointerdown', function () {
    moveLeft();
});

но функция moveLeft работает только один раз, когда мышь находится на стрелке. Я думаю, что это должно работать как цикл, но я понятия не имею, как.

1 Ответ

0 голосов
/ 20 июня 2019

События запускаются, когда происходит это событие.Таким образом, pointerover срабатывает, когда указатель меняется с состояния «не над игровым объектом», а затем «над игровым объектом».Это не сработает в цикле, потому что состояние не изменилось, оно просто все еще закончилось.

Вам нужно иметь переменную isOver, которую вы включаете, когда указатель перемещается,и выключить, когда он выходит.Затем в цикле обновления проверьте состояние этой переменной и, если установлено, сделайте свое движение.

...