Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: Wieso funktioniert das mit dem Zufall nicht?

  Alt 1. Nov 2005, 18:01
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
  Mit Zitat antworten Zitat