我有一些需要保存的项目,它们都是地图的价值。因此,每次用户都可以加载旧地图或创建并保存新地图。但我不确定如何或使用什么过程来保存所有数据。
我有
TCube array (1..10000)
Row, Column : integers
NumberOfBlocks : integers
因此,当用户单击保存时,它应该保存数组数据(我不确定这是否重要,但并非所有 10,000 个立方体都已创建)以及 3 个整数。
创建 TCUBE 数组和整数的完整代码。
procedure TForm2.createMap(r:integer;c:integer);
var
i : integer;
rows,columns,columnssave : integer;
x,y,z : single;
player : tmodel3d;
begin
columns := r;
rows := c;
i:=1;
x := 0;
y := 0;
z := 0;
NumberOfRows := rows;
NumberOfColumns := columns;
camera1.Position.X := rows/2;
camera1.Position.Y := columns/2;
dummy1.Position.X := rows/2;
dummy1.Position.Y := columns/2;
while rows>0 do
begin
columnssave := columns ;
while columns >0 do
begin
CreateCube[i]:=tcube.Create(self);
CreateCube[i].Visible := true;
CreateCube[i].Position.x := x;
CreateCube[i].Position.Y := y;
CreateCube[i].Position.Z := z;
CreateCube[i].Material.Texture.CreateFromFile(gamedir+'\pics\Grass.bmp');
CreateCube[i].Material.Modulation := TTextureMode.tmReplace;
CreateCube[i].Parent := viewport3d1;
CreateCube[i].OnClick := cubeClick;
CreateCube[i].OnMouseDown := mousedown;
y:= y+1;
i:=i+1;
//z:=z-1;
columns := columns -1;
end;
y:=0;
x:= x+1;
z:=0;
columns := columnssave;
rows:= rows-1;
end;
totalblocks := i;
setblocks := false;
label2.Text := inttostr(totalblocks);
end;
谢谢格伦