Phaser multitouch (на трекпаде ноутбука)
Меня смущает, как пропустить следующее условие, когда 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;
}
Также обратите внимание, что вам нужно объявить desktop
Вар после интанции game
объект. Затем я установил переменную в preload()
функция: desktop = game.device.desktop;
иначе это дало неправильное значение. Спасибо!
1 ответ
Вы правы в том, что вторичный кран становится activePointer
, Согласно документации, activePointer
это "[t] он последний активный объект Pointer".
Таким образом, вы хотите сделать свои чеки против game.input.pointer1
а также game.input.pointer2
вместо.
Так замени activePointer
в вашем коде с pointer1
и это может приблизить вас к тому, что вы искали.