How can I change velocity of a child of a physics.group depending on coordinates

In my game player has to catch the eggs, so the eggs (which are made from gameState.eggs = this.physics.add.group();) have a certain velocity while on the ramp, but then once they’re off the ramp, i want to authomatically setVelocity() to one with 0 for x coordinate, instead of just shooting across the screen.

Here’s my egg generating function:

function eggGen() {
    let num = Math.random();

    let xCoord, yCoord, eggDirection, eggAnimation, velocityX

    if (num < .5) {
        xCoord = 100;

        eggDirection = 'eggLeft';
        eggAnimation = 'rollingLeft'
        
        velocityX = this.velocityX;
        
        if (num < .25) {
            yCoord = 232;

        } else {
            yCoord = 382;
        }
    } else {
        xCoord = 700;

        eggDirection = 'eggRight';
        eggAnimation = 'rollingRight';

        velocityX = -(this.velocityX)

        if (num < .75) {
            yCoord = 232;

        } else {
            yCoord = 382;
        }
    }

    let egg = gameState.eggs.create(xCoord, yCoord, eggDirection).setVelocity(velocityX, this.velocityY).setScale(.6);

    if (egg.x > 220 && egg.x < 580) {
        egg.setVelocity(0, this.velocityY);

    }

    egg.anims.play(eggAnimation);
}

the last conditional is what i hoped would do the magic, but it doesn’t do anything.

You probably need to do this from the scene update().

1 Like

that’s right, thanks, in the end i did it, should probably think a little more before posting questions.