【问题标题】:Issue with active pointer on mobile, with Phaser 3移动设备上的活动指针问题,使用 Phaser 3
【发布时间】:2020-09-13 22:53:16
【问题描述】:

我正在尝试通过单击游戏的右侧或左侧来移动我的播放器。虽然在电脑上一切都很好,但当我在移动设备上尝试时,它总是向右移动,经过多次尝试后它开始向左移动,无论按哪里。这是我的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);
}

【问题讨论】:

    标签: phaser-framework


    【解决方案1】:

    那是因为您使用的是mousePointer,它只会看鼠标。

    来自the mousePointer documentation

    鼠标有自己独特的 Pointer 对象,您可以在制作桌面特定游戏时直接引用它。如果您同时支持桌面设备和触摸设备,则不要使用此属性,而是使用 activePointer,它始终会映射到最近交互的指针。

    所有逻辑都切换到activePointer,你应该已经准备好了。

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

    【讨论】:

    • 它的作品,我真的很欣赏它。太感谢了。来自阿根廷的问候
    • 乐于助人! :)
    猜你喜欢
    • 2019-03-20
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 2020-07-05
    • 1970-01-01
    相关资源
    最近更新 更多