Is it not possible to move a ParticleEmitterManager with physics?

function fireRocket(gameObject, target) {
    let particles = getScene().add.particles('effects', 0)
        .setPosition(gameObject.x, gameObject.y)
        .setDepth(depthFor('effects'));
    particles.createEmitter({
        speed: 2,
        scale: { start: 1, end: 2 },
        alpha: { start: 1, end: 0 },
        quantity: 5,
        lifespan: 1500
    });

    getScene().physics.add.existing(particles);
    getScene().physics.moveTo(particles, target.x, target.y, 20);
}

When I comment the last two lines (getScene().physics.*) I can see particles being emitted at the position of the gameObject. But with these two lines there are no particles visible.

Is there something wrong with my code, or is it simply not possible to move the ParticleEmitterManager this way?

You can’t add a physics body to a particle emitter or use moveTo() on it.

You could make a physics-enabled Zone or invisible sprite and have the emitter follow that.

Why does the ParticleEmitterManager have a body property then?

How can I make one game object follow another? By updating its position in update manually? Or does Phaser offer functions for that?

I’m also looking into PathFollowers and Tweens right now. Are these things better suited for what I want to achieve?

Hm… I’ve managed to move the ParticleEmitterManager with a Tween.

I’ve noticed however, that this moves the particles as well. This is not the effect I want to create.

For my rocket effect I want the position from where particles are emitted to move. However, the particles already emitted should not follow the movement of the ParticleEmitterManager.

How can I achieve that?

I was looking at the particle emitter but I guess you’re right, you could enable the particle manager for physics.

Nonetheless I think you can do this by having the emitter follow an invisible physics-enabled sprite. You would use moveTo() on that sprite.