Оздоровительные батончики в Фазер 3 - PullRequest
0 голосов
/ 31 марта 2019

Я делаю зомби-шутер сверху вниз в Phaser 3.

Я использую функцию moveToObject, чтобы зомби следили за игроком. Теперь я хочу сделать бары здоровья для зомби. Я читал, что вы можете использовать контейнеры, чтобы заставить врагов и панели здоровья двигаться вместе, но у меня возникают проблемы при перемещении контейнера с помощью moveToObject.

Можно ли переместить контейнер с помощью функции moveToObject или я должен использовать что-то другое вместо этого?

1 Ответ

1 голос
/ 01 апреля 2019

Похоже, что метод moveToObject ищет скорость отдельного элемента, и согласно API Docs , контейнер не имеет общей скорости.Но каждый объект, добавленный в контейнер, должен иметь скорость.

Самый быстрый способ исправить это - перебирать объекты вашего контейнера и сообщать каждому элементу moveToObject.Я привожу пример из Phaser Labs здесь:

var block = this.physics.add.image(600, 300, 'block');
var clown2 = this.physics.add.image(20, 200, 'clown');
var clown = this.physics.add.image(200, 300, 'clown');
var container = this.add.container(10, 200, [clown, clown2]);


for (var x = 0; x < container.list.length; x++) {
  this.physics.moveToObject(container.list[x], destination, 200);
}

Возможно, это не самое чистое решение, но оно должно помочь выполнить то, что вы хотите сделать.Документы API Phaser говорят, что moveToObject работает с GameObject, который включает в себя Container.Это может стоить сообщить об ошибке, чтобы увидеть, есть ли способ исправить базовый код, чтобы позволить контейнерам работать.Вы можете сообщить о проблеме здесь , если хотите.

...