I am creating a Breakout game using Box2D (of LibGdx if anyone interest). Everything works well until when the ball hits the wall when moving with a very small angle. Please look at the image for details:
I tried to set the wall friction to 0 and restitution to 1, as well as the ball's friction and restitution, but it still move along the wall (I have no World Gravity, and only gave the ball a starting Impulse when it hits the paddle). This also happens to the vertical wall if the angle is small enough, it will lose X velocity.
How can I move the ball the way I expected? If there is no friction, what caused the problem?