I believe what mercuryus is trying to say is make the walls passable, and after the ball first enters the (now passable) boundary, make a ball spawn at the other side with the same offset as the ball entering the other side (something like newball.x = rightBound.x + (ball.x-leftBound.x) vise versa with the opposite side)

Now transfer all settings of the first ball to the other (speed, trajectory, ect.)
Once the first ball is outside of sight, delete it from the level (you could just say any ball outside a certain area beyond the boundary is to be deleted). Hope this helps


A clever person solves a problem.
A wise person avoids it.
--Einstein

Currently Codeing: Free Lite-C