Phaser 多点触控(在笔记本电脑触控板上)

Phaser multitouch (on laptop trackpad)

我对如何在 1) 按住,然后 2) 再次点击屏幕以释放瞄准时跳过以下条件感到困惑。我认为辅助点击变成 activePointer 所以我很困惑。

var holding_down = game.input.activePointer.isDown;

if (holding_down && game.input.pointer2.isUp) { cue.aiming = true; }

更新:请注意,对于接受的解决方案,我必须区分桌面和移动使用。 pointer1 和 pointer2 在移动设备上工作正常,但在桌面上我必须执行以下操作。

  if (desktop) {
    var holding_down = game.input.activePointer.leftButton.isDown;
    var second_tap = spacebar.isDown;
  } else {
    var holding_down = game.input.pointer1.isDown;
    var second_tap   = game.input.pointer2.isDown;
  }

另请注意,您需要在实例化 game 对象后声明 desktop 变量。然后我在 preload() 函数中设置 var:desktop = game.device.desktop;,否则它给出了错误的值。谢谢!

你说得对,第二个水龙头变成了 activePointer。根据文档,activePointer 是“[t]他最近激活的指针对象。”

因此,您需要针对 game.input.pointer1game.input.pointer2 进行检查。

因此,请将代码中的 activePointer 替换为 pointer1,这可能会让您更接近您要查找的内容。