Ich gebe dir einen kleinen Lösungsvorschlag analog zur Windows GUI:
Daher, du machst eine Klasse, welche Rechteckkoordinaten enthält und nennst sie z.B. Region.
Nun muß eine Regionklasse neben Properties für die Coordinaten eine Funktion TEST enthalten,
welche bool zurückliefert und testet, ob ein übergebene Region vollständig in der angegebene Region ist (dann false).
Als erste Instanz nimmst du die Bildschirmkoordinaten (z.B. 0,0 - 1023,767).
Als zweite Instanz nimmst du das Rechteck umschließend das Auto (z.B. 65,65 - 78,96), welches du nach jeder Bewegung Koordinatenmäßig anpassen solltest.
Als weitere Instanzen zerlegst du deine Strecke ebenfalls in Rechtecke.
Weiters schreibst du eine Container-Klasse (Collection) welche alle Regionen enthält (z.B. Regions).
Hier schreibst du eine Funktion ebenfalls namens TEST welche die List durchgeht und dir die erste Instanz Region jener Region zurückliefert, welche bei einem dortigen TEST true zurückliefert.
Kollisionsabfrage ist nicht sehr einfach wenn man sie möglichst sauber und flexibel machen will. Dieser Ansatz des Boxings ist einfach und effizient, aber eben auch nicht sehr genau. Der Vorteil ist, man kann die Genauigkeit gut skalieren, allerdings geht das dann auch auf die Rechnerleistung. Da mußt du einen Kompromiß finden !
_________________
Euer Mäxchen
Wer früher stirbt, ist länger tot.