【发布时间】:2015-05-03 19:20:53
【问题描述】:
我正在编写基于图块的 2d 游戏。
我将第一层(水、草、泥土等...)存储为二维整数数组,其中每个值 [x,y] 代表特定的瓷砖。
没关系,但我还需要以某种方式存储第二层(对象)。不可能像瓦片那样使用二维数组,因为每个对象都有一些附加数据。例如:胸部对象包含有关其中物品及其数量的数据,烤箱包含有关燃料的数据等等......
我更喜欢将两个图层都永久存储在 RAM 中,因为我的地图的大小不是那么大。我需要将 layer1 和 layer2 保存在文件中。 layer1 我使用二进制文件,它既快速又简单。
所以我很感兴趣,存储对象层最有效的方法是什么? (再一次,我想在游戏运行期间一直将它放在RAM中,并将其保存为二进制文件) 谢谢!
【问题讨论】:
-
您没有指定语言,但假设它允许 OOP,您可以为第二层中的每个项目创建一个类,然后使用这些对象的二维数组。
-
我正在使用 C++,是的,这是个好主意,但是如何将它存储在文件中?另外,我认为这需要很多内存,因为树和石头对象没有额外的信息,而箱子比烤箱有更多这样的数据。而且二维数组中的大多数此类对象都只是 NULL,因为我没有在每个图块上都有对象。