Einzelnen Beitrag anzeigen

Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#12

Re: Brauche unbedingt hilfe!

  Alt 19. Dez 2004, 17:04
Eine Idee für die Kollisionsabfrage wäre diese:
Du definierst dir ein paar records
Delphi-Quellcode:
TFrosch = record
     Min,breite,Fahrbahn: integer;
     end;

TAuto = record
     min,breite, Fahrbahn, Geschw : integer;
     Bild: TImage;
     end;
Jetzt kannst du ein dynamisches array of TAuto erstellen und beim Programmstart die Autos mit Werten fühlen. Min ist der X-Pixelwert der linken oberen Ecke und in Breite kommt die Länge deines Auto-Images. Fahrbahn gibt an, auf welcher Fahrbahn dein Auto gerade ist und in Geschw. kannst du Speichern, um wie viel Px sich dieses Auto nach jedem Zeitschritt befindet. Das Min beim Frosch kannst du beim Programmstart etwa in die Mitte deines Forms setzen.

Jetzt brauchst du einen Timer. Über dessen Intervall kannst du auch die Schwierigkeit steuern.
In Ontimer-Event kommt dann so was:
Delphi-Quellcode:
for i:=0 to length(Autoarray)-1 do // schleife über alle Autos
begin
if Autoarray[i].Fahrbahn = Frosch.Fahrbahn then // Auto und Frosch auf gleicher Fahrbahn
   begin
   if (Sich das Auto mit dem Frosch überlappt) then
       Showmessage('autsch');
end;

// Ausserdem werden alle Autos verschoben:
for i:=0 to length(autoarray)-1 do
begin
Autoarray[i].min:=Autoarray[i].min+Autoarray[i].geschw
Autoarray[i].bild.left:= Autoarray[i].min; // Das Bild wird verschoben
Damit müsstest du erstmal hinkommen. Bei weiteren Fragen weisst du ja, wo du fragen kannst. Den Text oben habe ich nicht kompiliert, d.h. es kann gut sein, dass du ihn überarbeiten musst.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat