A ball and stationary brick collision don't work as I expected


Just pay attention to the two balls at the top:

As you can see, there is a ball that’s bouncing perfectly vertically when it hits the corner of the brick.

And there is a ball that bounces back up to the top when it hits the middle section of two bricks.

As for the second ball, I assume that’s due to collision with the upper line of the lower brick that the ball hits some how. But it hit two bricks that are on top of each other so I expect it to bounce as if it hit one tall brick…

I mean, the collision with the world bound is as expected, just bouncing off like a laser bouncing off a mirror.

Those gray squares are unbreakable ones, and they have no onCollideCallback:

this.physics.add.collider(ball, this.unbreakables, null, null, this);

The game I’m trying to make is a brickbreaker btw, and … I expected the game to ‘just work’ because I thought the development of the game would be so simple.

So … I need help with making physics work the way it should.


I think this is a Phaser bug because it worked correctly in v3.55.2.

Arcade Physics can’t merge adjoining bodies. You could use a Tilemap for this, or you could remove the colliding edges yourself:

above.body.checkCollision.down = false;
below.body.checkCollision.up = false;