Autos ändern Geschwindigkeit (Java)

Hallo,
wir haben in der Schule seit Anfang des Jahres mit Java angefangen und ich habe etwas voraus gearbeitet.
Ziel ist es ein Ampel-gesteuertes Kreuzungssystem zu entwickeln.

Momentan erstellen wir die Autos. Das Symbol haben wir bereits vorgegeben bekommen und sollten dazu Methoden programmieren, die ein Auto erstellen und automatisch einen Platz zuweisen. Außerdem sollen diese bereits fahren (nicht dynamisch).

Da wir das leider nur anhand von zwei Autos gemacht haben wollte ich eine Methode schreiben, die beliebig viele Autos erstellt. Das funktioniert via while{} auch ganz gut. Jetzt sollen diese Objekte auch dynamisch fahren können und dabei einen Mindestabstand einhalten.

Ich weiß nicht ob eine while{} mit Thread.sleep elegant gelöst ist oder nicht, so habe ich es jedenfalls gemacht. Komischerweise fährt mein erstes Auto durch und das zweite folgt aber in langsameren Tempo, was schonmal gar nicht sein darf. Dann, sobald mein erstes Auto gelöscht, also null, ist beschleunigt das zweite Auto auf die eigentlich gewünschte Geschwindigkeit. Heißt: Eigentlich sollte sich der Abstand zwischen den Autos nicht verändern sondern immer 10.0f betragen, verändert sich aber (leider).

Mein Informatiklehrer wollte sich das Projekt übers Wochenende mitnehmen, da er auf die Schnelle auch keinen Fehler gefunden hatte und verwies mich auf eine Debug Funktion, welche ich leider noch nicht kenne.

Könntet ihr mir helfen?

Ich habe hier das Projekt hochgeladen (der Anhang hier akzeptiert keine .rar Files)
http://www.file-upload.net/download-8609105/kreuzung_b_COP.rar.html

Grüße,
Lucas