Hallo fabgo,
wenn du den Zufallswert nur einmal pro Fahrt haben möchtest, dann musst du ihn beim Fahrtbeginn (ImgAuto1.Left = -20) bestimmen und in einer private Variable deiner Form (TAmpel2) ablegen. Außerdem musst du etwas aufpassen, wenn du IF-ELSE-IF Strecken kodierst, besonders wenn du an verschiedenen Stellen weitere Bedingungen knüpfst. Die Intervalle müssen immer klar zu erkennen sein:
Delphi-Quellcode:
interface
type
TAmpel2 = class(TForm)
...
private
GibGas: boolean;
end;
implementation
procedure TAmpel2.Timer1Timer(Sender: TObject);
begin
with ImAuto1 do
begin
Left := (Left + 20 + 2) mod 640 - 20;
if Left = -20 then
GibGas := Odd(Random(2));
if (Left >= 174) then
Timer1.Interval := 10
else
if (Left > 124) then
begin
if ImRotLinks.Visible then
Timer1.Interval := 30
end
else if Left > 88 then
begin
if ImGelbLinks.Visible then
if GibGas
then Timer1.Interval := 10
else Timer1.Interval := 1000;
end
else
Timer1.Interval := 10;
end;
end;
Schreibfehler inbegriffen...
Grüße vom marabu