Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Tischtennis Problem beim 2. Mal

  Alt 12. Jul 2010, 23:39
Wo setzt du denn die Position von Position zurück auf 0? (scrbCountdown.Position)

Noch ein paar Tipps:
Delphi-Quellcode:
if shBall.Left < shRacketL.Left then //Rückschlag von l. Wand
    begin
      shBall.Brush.Color:=clred;
      timBall.Enabled:=false;
      bGameOver:=true;
    end;
    // Mach doch hier ein ELSE-IF, denn du musst hier ja nicht mehr
    // wenn weiter oben schon das if true ist
    if shBall.Left > shRacketR.Left then //Rückschlag von r. Wand
    begin
      shBall.Brush.Color:=clred;
      timBall.Enabled:=false;
      bGameOver:=true;
    end;
Delphi-Quellcode:
 // bitte nicht auf true testen. bGameOver ist doch schon
  // ein Boolean, ergo brauchst du das nicht machen. Gründe hierfür
  // findest du auch im Forum.
  if bGameOver = true then
  begin
    lblCountdown.Visible:=True;
    timCountdown.Enabled:=True;
  end;
end;
Delphi-Quellcode:
{ ... }
  // hier würde ich noch die Reihenfolge ändern
  6: begin
      // lblCountdown.Visible:=False;
      // lblCountdown.Caption:='5 ...';
      // timBall.Enabled:=True;
      // timCountdown.Enabled:=False;
      // bGameOver:=false;

      // nach:

      lblCountdown.Visible:=False;
      lblCountdown.Caption:='5 ...';
      bGameOver:=false;
      timCountdown.Enabled:=False;
      timBall.Enabled:=True;

     // Warum? Weil so sichergestellt ist, dass nicht doch der
     // Timer timBall feuert, obwohl nicht alle Variablen gesetzt
     // sind. Ich weiß, sowas ist kleinlich und kann je nach Interval
     // von timBall nicht eintreten, aber sicher ist sicher. In
     // anderen Fällen kann sowas evtl. schief gehen.
     end;
  end;
end;
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat