Einzelnen Beitrag anzeigen

Phobeus

Registriert seit: 14. Sep 2003
Ort: Tespe
65 Beiträge
 
Delphi 7 Professional
 
#6

Re: auto entlang einer linie fahren lassen

  Alt 16. Sep 2006, 00:07
Bin gerade auf dem Sprung, aber ich spendiere mal einen Code-Schnipsel aus einem Projekt von mir, der verwendet wird um ein Objekt entlang einer Route wandern zu lassen. Die Routen sind als einfache 2f-Vectoren gespeichert. Touched führt eine einfache Prüfung durch, ob das Objekt eine gewisse Toleranz-Distanz zum Zielpunkt erreicht hat. Anschließend brauchst Du nur noch das Objekt in die richtige Richtung zu drehen.

Delphi-Quellcode:
if control = CC_ROUTE then
begin
  rx := route[currentRoute].x;
  ry := route[currentRoute].y;

  xdiff := abs(rx-pos[0]);
  ydiff := abs(ry-pos[1]);

  length := sqrt(xdiff*xdiff+ydiff*ydiff);

  mx := (rx - pos[0]) / length*speed;
  my := (ry - pos[1]) / length*speed;

  pos[0] := pos[0] + mx;
  pos[1] := pos[1] + my;

  // check, if a route point is reached
  if touched(rx,ry) then
  begin
     case route[currentRoute].action of
     RP_NEXT:
     begin
       g_Console.add('Reach rp '+IntToStr(currentRoute)+' proceed to next');
       inc(currentRoute)
     end;
     RP_REPEAT:
     begin
       g_Console.add('Reach rp '+IntToStr(currentRoute)+' start over again');
       currentRoute := 0;
     end;
   end;
end;
Florian Sievert
http://www.delphigl.com/
  Mit Zitat antworten Zitat