Я использую 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](https://i.stack.imgur.com/6KOqg.png)