Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: Auto hält nicht an roter Ampel

  Alt 12. Nov 2010, 18:37
Da sich dein Auto nicht in Einerschritten bewegt, mußt du also auf Bereiche und keine genauen Werte prüfen, so daß dein Auto dieses auch trifft.

> oder < bringt nicht viel, wenn sich der Bereich mitten im Raum befindet.

Tipp: Auf "= true" prüft man nicht.

Delphi-Quellcode:
if rot.Visible and (auto1.left >= 120) and (auto1.left < 120 + 3) then
begin
  auto1.left := 120;
end
else
  begin
    auto1.left := auto1.left + 3;
    if auto1.left >= 720 then
      auto1.left := 0;
  end;
Und wenn man das Ganze noch etwas umstellt, dann wird der Code kürzer und man spart sich das unnötige Setzen auf 120, wo dasAuto schon dort ist.
Delphi-Quellcode:
{ wenn nicht (rot und an Ampel), dann fahren }
if not (rot.Visible and (auto1.left >= 120) and (auto1.left < 120 + 3) then
  ...

// bzw.

{ nur wenn nicht Rot oder vor Ampel oder hinter Ampel, dann fahren }
{ aka: nur wenn nicht Rot oder nicht an der Ampel, dann fahren }
if not rot.Visible or (auto1.left < 120) or (auto1.left >= 120 + 3) then
begin
  { ein Stückchen fahren } 
  auto1.left := auto1.left + 3;
  { wenn aus dem Bild raus, dann auf Anfang }
  if auto1.left >= 720 then
    auto1.left := 0;
end;
$2B or not $2B

Geändert von himitsu (12. Nov 2010 um 18:51 Uhr)
  Mit Zitat antworten Zitat