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 и это может приблизить вас к тому, что вы искали.

Другие вопросы по тегам