Was geht denn nicht?
Ich bin der Meinung, daß in der unteren if-Abfrage (mit den Panels) nur "x_step := x_step * -1;" hingehört, die y-Richtung wird ja nicht verändert. Und irgendwie muss doch für die Abfrage für die untere Seite auch noch der Durchmesser des Balls abgezogen werden...
Und daß du in der ersten if-Abfrage (mit dem Screen) auch den rechten und linken Rand berücksichtigst, obwohl da ja eigentlich die Panels für zuständig sind, kommt mir irgendwie auch spanisch vor