Проблема с активным указателем на мобильном устройстве с помощью Phaser 3 - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь переместить игрока, нажав справа или слева от игры. Хотя на компьютере все в порядке, когда я пробую его на мобильном устройстве, он всегда перемещается вправо, а после многих попыток он начинает двигаться влево, независимо от места нажатия. Это моя update функция:

if (game.input.activePointer.isDown)
{
    if (game.input.mousePointer.x > 600)
    {
        player.setVelocityX(160);
        player.anims.play('right', true);
    }   
    else if (game.input.mousePointer.x < 200)
    {
        player.setVelocityX(-160);
        player.anims.play('left', true);
    }
} else {
    player.setVelocityX(0);
    player.anims.play('turn', true);
}

1 Ответ

0 голосов
/ 07 ноября 2018

Это потому, что вы используете mousePointer, который будет смотреть только на мышь.

С документация указателя мыши :

Мышь имеет собственный уникальный объект Pointer, на который вы можете напрямую ссылаться, если создаете настольную игру . Если вы поддерживаете как настольные, так и сенсорные устройства, не используйте это свойство, вместо этого используйте activePointer, который всегда будет сопоставляться с последним взаимодействующим указателем.

Переключитесь на activePointer для всей вашей логики, и вы должны быть настроены.

Если вы используете физику, что может показаться вам причиной незначительного движения, возможно, связано с логикой где-то еще в вашем коде; это единственная причина, по которой я могу придумать ваши if заявления.

...