Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#37

Re: Neuer Artikel auf meiner HP: "Code-Design"

  Alt 20. Jul 2004, 20:34
was haltet ihr von diesem code(es ist aus meinem pac-man clone und ist in einer extern unit in einer eigenen klassse ausgelagert und die komponenten(DXDraw, DXTimer, DXListImage werden zurlaufzeit erstellt)
Code:
procedure TPACMan.DXDraw1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  i,index:Integer;
  k:array of TKI;
begin

  if ssLeft in Shift then begin
    if (x div mapS <= MapX) and (y div mapS <= MapY) then begin
      if NTyp = isStein then CreateItems((x div MapS),(y div MapS),nTyp,ntex);
      if NTyp = isKi then CreateKI( (x div mapS),(y div mapS),0,0,random(6)+3 );
      if NTYp = isPlayer then begin
        Player.x:=x div mapS;
        Player.y:=y div mapS;
      end;
    end;
  end;

  if ssRight in Shift then begin
    if NTYp = isStein then begin
      Map[x div MapS,y div MapS].Typ:=None;
      Map[x div MapS,y div MapS].Tex:=0;
    end;

    if NTYp = isKI then begin
      index:=0;

      for i:=0 to HIGH(ki) do begin
        if (ki[i].x = x div mapX) and (ki[i].y = y div mapY) then begin
          index:=i;
          break;
        end;
      end;

      for i:=0 to HIGH(KI) do begin
        if i <> index then begin
          SetLength(k,high(k)+2);
          k[HIGH(K)]:=ki[i];
        end;
      end;

      SetLength(ki,0);
      SetLength(ki,high(k));

      for i:=0 to HIGH(KI) do begin
        ki[i]:=k[i];
      end;

    end;
  end;
       
end;
ich finde so einen code viel übersichtlich als, wenn man z.b.
Code:
for i:=0 to high(ki) do
begin
...
end;
schreiben würde
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat