Das wird ihm auch nicht weiterhelfen ^^
Das mit den Vektoren hatte ich nur ins Spiel gebracht, weil jemand meinte:
Zitat:
Daraus kannst du dann über den Tangens den Winkel ermitteln...´
Wenn dein Ball nur an horizontalen und Vertikalen Flächen reflektiert ist es sogar noch einfacher...
...dann musst du nur das Vorzeichen einer der Teilgeschwindigkeiten umkehren.
Um zu zeigen: Man kann auf den Tangens verzichten, auch wenn die Geraden schräg im Raum liegen. Die Formel und den Normalenvektor kannst du daher wieder vergessen - du hast ja anscheinend nur vertikale/horizontale Flächen
Zu dem Problem: Du hast ja bereits so eine Art Kollisionserkennung drin. Das Problem ist nur: IntersectRect liefert dir zwar zurück, ob es eine Kollision gab, aber nicht wo. Das musst du selbst herausfinden!
Unter der Annahme dass der übrige Code funktioniert (sieht etwas umständlich aber sonst okay aus...) musst du also in der Schleife feststellen a) ob der Ball kollidiert und b) Wenn ja, wo er kollidiert.
Du musst halt manuell nacheinander die Ober & Unterseite und die linke und die rechte Seite abchecken. Bei Ober/Unterseite die Y Komponente invertieren, Bei links/rechts eben die X-Komponente invertieren.