使用Phaser 3的移动设备上的活动指针问题

时间:2018-11-06 17:55:03

标签: phaser-framework

我试图通过单击游戏的右侧或左侧来移动我的玩家。虽然计算机上的一切都很好,但是当我在移动设备上尝试时,它总是向右移动,而经过多次尝试后,无论在何处按,它都开始向左移动。这是我的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 :(得分:0)

那是因为您使用的mousePointer仅会看着鼠标。

来自the mousePointer documentation

  

鼠标具有自己唯一的Pointer对象,如果制作桌面专用游戏,则可以直接引用该对象。如果同时支持桌面设备和触摸设备,则不要使用此属性,而应使用activePointer,它将始终映射到最近交互的指针。

根据您的所有逻辑切换到activePointer,您应该被设置。

如果您正在使用物理,看起来可能是物理的,那么它稍微移动的原因可能与代码中其他地方的逻辑有关。这是我能想到的给您if声明的唯一原因。