【发布时间】:2013-08-07 03:47:24
【问题描述】:
我有一些需要保存的项目,它们都是地图的价值。因此,每次用户都可以加载旧地图或创建并保存新地图。但我不确定如何或使用什么过程来保存所有数据。
我有
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;
谢谢 格伦
【问题讨论】:
-
你能显示真实的代码吗?
-
@MBo 目前我没有要保存或加载的代码,只能创建新的...因为我不确定如何保存/加载,但添加了代码以显示我如何创建数组跨度>
-
如果有人回答建议您保存到 INI 文件或 JSON 格式,您会怎么说?你会说,“我不想要一个人类可读的文本文件”。然后回答者将浪费他们的时间。所以是的,如果您有要求,它们必须出现在 Q 中。
-
-1 因为您一直 忽略所有 cmets 要求您提供更多详细信息在您的问题中。如果您甚至无法提供有关您尝试保存的数据结构的信息,那么就不可能为您提供有关如何保存它的答案。 question 中需要提供更多详细信息,而不是隐藏在杂乱无章的 cmets 中。你有能力edit你的帖子来改进或澄清事情,但你一直无视要求你这样做的请求。如果您希望删除“-1s”,您需要改进您的问题。
-
来自 cmets 的新信息:致 David “存储在用户无法打开的文件类型(如 ini)中”,以及“首选项是不可读的文本文件”(无论这意味着什么)。对尼克:“每个 TCube 的位置 x,y,z 然后是 3 个整数值”(以及更多)。所有这些都是新信息,不在您的问题中(您所说的只是“保存数组数据......连同整数”)。在您的问题中也没有任何努力自己做任何事情来保存它,包括至少努力将它保存到文本文件中。
标签: delphi delphi-xe2 firemonkey