Ein Rectangle bei XNA hat schon eine Methode. Intersects heißts da glaube. Einfach mal bei MSDN nachgucken. Ansonsten prüfst du doch bei dir keine wirkliche Kollision. In deinem Fall überprüfst du ob die untere Kante von cursRec über den einzelnen Rechtecken r ist. Und der Wert den du manipulierst ist global. Das heißt, du änderst ihn für jedes Rechteck neu. So hast du am Ende natürlich nur die letzte Änderung, welche immer die deines letzten Rechteckes ist. Entweder musst du ab einer bestimmten Bedingung abbrechen, wie zum Beispiel, sobald auch nur eine einzige Kollision gefunden wurde, setze den Boolwert und breche die Schleife ab. Wenn du die Kollision für jedes Objekt einzeln merken musst (willst, dann musst du dein Konzept ändern). Vermutlich ist das aber nicht mal gewollt.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“