Глюк при перемещении спрайта с помощью функции moveTo по указателю вниз - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь переместить спрайт на основе позиции события нажатия / касания пользователя.

Вот демонстрация того, что я сделал до сих пор: https://codepen.io/louiscuny/pen/GeQQbZ

var pointer
var logo

function create ()
{
    logo = this.physics.add.image(400, 100, 'ball');
    pointer = this.input.activePointer
}

function update() {
  logo.setVelocity(0)
  if (pointer.isDown) {
    this.physics.moveTo(logo, pointer.worldX, pointer.worldY, 600)
  }
}

Он работает, как и ожидалось, но есть сбой, когда спрайт находится под указателем.

Я пытался смягчить это поведение, используя Math.floor для координат или не вызывать метод moveTo, когда расстояние между указателем и спрайтом слишком мало, но, похоже, ничего не работает.

Направьте меня в правильном направлении, пожалуйста:)

1 Ответ

0 голосов
/ 18 марта 2019

После некоторых проб и ошибок я наконец нашел правильный порог.

if (Phaser.Math.Distance.Between(logo.x, logo.y, pointer.worldX, pointer.worldY) > 5)
  this.physics.moveTo(logo, pointer.worldX, pointer.worldY, 600)

https://codepen.io/louiscuny/pen/rRKYwJ

...