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.pointer1
和 game.input.pointer2
进行检查。
因此,请将代码中的 activePointer
替换为 pointer1
,这可能会让您更接近您要查找的内容。
我对如何在 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.pointer1
和 game.input.pointer2
进行检查。
因此,请将代码中的 activePointer
替换为 pointer1
,这可能会让您更接近您要查找的内容。