Wenn du also die Rechtecke nicht drehen willst, so dass sie immer parallel zu den Achsen liegen, ist die Abfrage trivial:
Delphi-Quellcode:
if ((ball.x+radius)>rechteck.links) and ( (ball.x-radius)<rechteck.rechts) and
(das gleiche vertikal) then KOLLISION();
Wenn du dir das aufzeichnest, wirst du sehen, dass diese Lösung nur eine Näherung ist, du in den Ecken also einen Fehler von ein paar Pixeln machst. Wenn du kleine Kugeln hast, dürfte das nicht allzu schlimm sein, sonst musst du da noch eine besondere Erkennung machen.
Wenn du das mit den Farben machst, wirds wirklich exakt, aber auch etwas langsamer.
// So dürften die Klammern passen. Glaub ich. Kennt jemand Scheme?
/* doch nicht. vielleicht aber jetzt */
Erwarte das Beste und bereite dich auf das Schlimmste vor.