Последователь Фазера 3 начинается с - PullRequest
0 голосов
/ 20 апреля 2020

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

drawpath(){
    let graphics = this.add.graphics();
    let path = new Phaser.Curves.Path(0, 150);
    for (let i = 0; i < 10; i++) {
        // xRadius, yRadius, startAngle, endAngle, clockwise, rotation
        if (i % 2 === 0)
            path.ellipseTo(96, 62, 135, 45, true, 0); // 180 360
        else
            path.ellipseTo(96, 62, 225, 315, false, 0);
    }
    graphics.lineStyle(1, 0xffffff, 1);
    path.draw(graphics);
    //follower(path, x, y, texture [, frame])
    for (let i = 0 ; i < 10 ; ++i) {
        let follower = this.add.follower(path, 96, 150, 'rubberducky');
        follower.setScale(0.5);
        //startFollow( [config] [, startAt])
        follower.startFollow(
            {
                duration: 10000,
                positionOnPath: true,
                repeat: -1,
                startAt: i * .1
            }
        );
    }
}

В приведенном выше примере кода все они начинаются в начале одновременно. Я ожидал, что startAt начнёт их с% по пути (чтобы они были равномерно распределены от начала до конца).

Я также попытался:

follower.startFollow(
    {
        duration: 10000,
        positionOnPath: true,
        repeat: -1
    }, i * .1
);

, который до сих пор не не работает И:

let follower = this.add.follower(path, i * 96, 150, 'rubberducky');

Не работает

Самое близкое, что я могу получить (через 10 секунд я получаю желаемый эффект):

for (let i = 0 ; i < 10 ; ++i) {
    let follower = this.add.follower(path, 96, 150, 'rubberducky');
    follower.setScale(0.5);
    //startFollow( [config] [, startAt])
    follower.startFollow(
       {
            duration: 10000,
            positionOnPath: true,
            repeat: -1,
            delay: i * 1000
        }
    );
}

Вот что Я ищу в начале:

Desired effect

...