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