You can drag the ball and shoot it. Don't touch the line, and you should be fine. (There is a bug with the line that I don't know how to fix.) Update Right now, if the ball hits a corner, it gets stuck. Ball dragging stopped working (likely due to lag), as it works when the other code is turned off. There is a bug where the ball loses speed when it hits the mirror. This is likely because I am treating the X speed and Y speed as the total speed when calculating the bounce. Then I take the "total speed" of 10 and try to convert it back into X and Y speed. I think this is the cause because when the ball hits a flat mirror at a 45° angle with a speed of 10, it comes out with a speed of 7.07.