Добавить группу в фолловер - Phaser 3 - PullRequest
0 голосов
/ 03 апреля 2019

Я новичок в Phaser 3 и пытаюсь добавить группу (2 спрайта) в последователя. Код работает, когда я использую спрайт в add.follower.

function create () {

    var bola = this.add.group();

    bola.create(0, 0, 'bola15');
    bola.create(0, 0, 'bolasombra');

    var line1 = new Phaser.Curves.Line([ 100, 100, 500, 100 ]);
    var line2 = new Phaser.Curves.Line([ 500, 100, 500, 500 ]);

    path1 = this.add.path();

    path1.add(line1);
    path1.add(line2);

    var mover = this.add.follower(path1, 0, 0, bola);

    mover.startFollow({
        positionOnPath: true,
        duration: 3000,
        yoyo: false,
        repeat: 0,
        rotateToPath: false,
        verticalAdjust: true
    });
}

Вот что я получил:

Error

Есть какое-нибудь решение для этого или другой способ сделать что-то подобное?

Edit:

Пробовал с «контейнером» и получил тот же результат:

bola = this.add.container(0,0);
bola1 = this.add.sprite(0,0,'bola15');
bola2 = this.add.sprite(0,0,'bolasombra');  
bola.add(bola1);
bola.add(bola2);

1 Ответ

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

В текущем состоянии PathFollower настроен на прием только одного GameObject.К сожалению, это означает, что вам придется добавлять элементы группы к подписчику один за другим.Вы можете настроить цикл для работы с элементами вашей группы и создать последователей пути, например:

for (var i = 0; i < bola.children.entries.length; i++) {
  var mover = this.add.follower(path1, 0, 0, bola.children.entries[i].texture.key);

  mover.startFollow({
    positionOnPath: true,
    duration: 3000,
    yoyo: false,
    repeat: 0,
    rotateToPath: false,
    verticalAdjust: true
  });
}

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

...