Mehr als komisch, mein Contructor:
Delphi-Quellcode:
TWorldArray = array of array of TCreature;
TWorld = class(TObject)
private
FBufferArray: TWorldArray;
FWorldArray : TWorldArray;
public
constructor Create(BlockNumX, BlockNumY, BlockHeight, BlockWidth: Integer);
destructor Destroy; override;
[...]
procedure BufferCreature(SourceX, SourceY, TargetX, TargetY: Integer;
BufferArray, WorldArray: TWorldArray);
[...]
property BufferArray: TWorldArray read FWorldArray;
property WorldArray: TWorldArray read FWorldArray;
end;
[...]
constructor TWorld.Create(BlockNumX, BlockNumY, BlockHeight,
BlockWidth: Integer);
var
i: Integer;
j: Integer;
begin
[ ... ]
SetLength(FBufferArray, BlockNumX, BlockNumY);
SetLength(FWorldArray, BlockNumX, BlockNumY);
for i := 0 to FBlockNumX - 1 do
for j := 0 to FBlockNumY - 1 do
begin
FBufferArray[i][j] := TSand.Create(i, j);
FWorldArray[i][j] := TSand.Create(i, j);
end;
end;
Vielleicht liegt es an der Zuweisung?
Delphi-Quellcode:
procedure TWorld.BufferCreature(SourceX, SourceY, TargetX, TargetY: Integer;
BufferArray, WorldArray: TWorldArray);
begin
BufferArray[TargetX][TargetY] := WorldArray[SourceX][SourceY];
end;
(Ich wollte jetzt zu 100% sicher gehen und habe die Arrays mit übergeben. Es ist natürlich klar, dass ich nur die Instanz der Klasse übergeben müsste, da ich ja per properties auf die Arrays zugreifen könnte.)
Würde bei dieser Zuweisung wirklich eine Kopie erstellt werden?