存储游戏对象的更好方法是什么?

时间:2015-05-03 19:20:53

标签: arrays binary tile

我正在使用基于2D的游戏进行编码。

我将第一层(水,草,泥等)存储为2d整数数组,其中每个值[x,y]代表特定的tile。

没关系,但我还需要以某种方式存储第二层(对象)。对于切片,不可能使用二维数组,因为每个对象都有一些附加数据。例如:胸部对象包含有关其中的项目及其编号的数据,烤箱包含有关燃料的数据等等......

我更喜欢永久地将两个图层存储在RAM中,因为我的地图大小不是那么大。我需要在文件中保存layer1和layer2。对于layer1,我使用二进制文件,它快速而简单。

所以我很感兴趣,存储对象层的最有效方法是什么? (再次,我想在游戏操作期间一直将它放在RAM中,并保存二进制文件) 谢谢!

2 个答案:

答案 0 :(得分:0)

最简单的方法是存储这样的对象数组:

  1. 对象数量
  2. 对象数据
  3. 每个对象数据都可以是可变长度记录,如下所示:

    1. 对象类型(树,敌人,主干e.t.c。)
    2. x,y coords
    3. 其他数据取决于对象类型(树的高度,敌人的攻击和防御,再次作为数组e.t.c的行李箱内容)
    4. 通过这种方式,您可以根据对象类型读取/写入其他对象数据。

答案 1 :(得分:0)

我认为,我可以使用2d数组的可变长度数组来存储它。并使用一些除数将其存储在二进制文件中,即:

http://rghost.ru/8DZHjSm5M.view (图片在这里)

我们在文件中有N * N个这样的记录。

所以arr [0] [0] [0]给了我一种对象,arr [0] [0] [n]给了我一些额外的信息。只需要编写一些解析器代码。

您怎么看?