AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Kleines Tennis eure Meinung zu einem Anfänger
Thema durchsuchen
Ansicht
Themen-Optionen

Kleines Tennis eure Meinung zu einem Anfänger

Ein Thema von M4dl355 · begonnen am 23. Feb 2005 · letzter Beitrag vom 24. Feb 2005
Antwort Antwort
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#1

Re: Kleines Tennis eure Meinung zu einem Anfänger

  Alt 23. Feb 2005, 21:20
Wie schon gesagt, wirklich gut für den Anfang !

Noch ein paar Sachen:
  • Wenn man sein Paddel nach links oder rechts verschiebt, blickt das Programm gar nichts mehr
  • Was soll der Joker ?
  • Irgendwann dann noch richtige Physik und OffScreen-Bitmaps
Jetzt zum Code: Wenn du deinen SoucreCode bereitstellst, solltest du schon auf gute Lesbarkeit, sinnvolle Komponenten- und Variablennamen oder dazu dann wenigstens ein Kommentar (z.B: f und i).

Okay, einmal durch den SourceFormatter, weiter gehts:
i,f,level, level_i :integer; solltest du in den private-Teil deines Formulars verschieben:
Delphi-Quellcode:
[...]
    procedure Timer2Timer(Sender: TObject);
  private
    i,f,level, level_i :integer;
  public
[...]
Brauchst du das wirklich ?
Delphi-Quellcode:
function umdrehen(e: integer): integer;
begin
  result := e * (-1);
end;
Anscheinend nicht, du benutzt es ja gar nicht .
Delphi-Quellcode:
function ist_da(e: string): boolean;
var tolleranz: integer;
begin
  for tolleranz := -20 to 70 do begin
    if (Form1.Button1.Top + tolleranz = Form1.Button2.Top) then begin
      result := false;
      exit;
    end else result := true;
  end;
end;
Performanter:
Delphi-Quellcode:
function ist_da: boolean; //wofür den Parameter?
begin
  Result:=(Form1.Button2.Top-Form1.Button1.Top>=-20) and (Form1.Button2.Top-Form1.Button1.Top<=70)
end;
Delphi-Quellcode:
procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
[...]
funktioniert ja eh nicht.

Delphi-Quellcode:
  if Button2.Left > Form1.clientwidth - 60 then begin
    level_i := level_i + 1;
    if level_i > 2 then begin
      level_i := 0;
      level := level + 1;
      if Timer1.Interval > 21 then Timer1.Interval := Timer1.Interval - 20;
      Label1.Caption := IntToStr(level);
    end;
Es soll nach zwei Treffern das nächste Level kommen, oder? Speicher das ganze in eine Variable, das Level ist dann die Hälfte:
Delphi-Quellcode:
  if Button2.Left > Form1.clientwidth - 60 then begin
    Inc(level); //Erhöht die Variable um eins
    if not Odd(level) then begin //level gerade?
      if Timer1.Interval > 21 then Timer1.Interval := Timer1.Interval - 20;
      Label1.Caption := IntToStr(level mod 2);
    end;
 and (war_da = true) then Boolean-Variablen lieber so testen:
 and war_da then
Delphi-Quellcode:
for tolleranz := -20 to 70 do begin
    if (Button1.Top + tolleranz = Button2.Top) and (war_da = true) then begin
    {Case tolleranz of
    -20..-11: f := -20;
    -10..-1 : f := -17;
      0..10 : f := -14;
      11..20 : f := -9;
      21..35 : f := -5;
      36..40 : f := 0;
      41..50 : f := 10;
      51..60 : f := 15;
      61..70 : f := 20;
     end;   }

    end;
  end;
Dazu sage ich mal nix .

f := random(90) - 25; Für echten Zufall musst du vor Random noch randomize aufrufen. Da dieses aber nur einmal aufgerufen werden sollte (am besten im OnCreate), du aber FormCreate mehrmals aufrufst, musst du es so machen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  randomize;
  i := -20;
  f := random(90) - 25;
  level := 0; //Nur noch level, s.o.
end;



procedure TForm1.Button3Click(Sender: TObject);
begin
  Button2.Left := 200;
  Button2.Top := 200;
  Timer1.Enabled := true;
  Timer1.interval := 80;
  Label2.caption := '0';
  Timer2.enabled := true;
  i := -20;
  f := random(90) - 25;
  level := 0;
end;
Ist jetzt vielleicht etwas viel Kritik, aber das Programm an sich ist ja gut und du sollst ja was lernen .

PS: Die SourceFormatter Optionen standen auf Default, normalerweise kommt bei mir ein Zeilenumbruch zwischen then und begin.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz