我正在使用基于2D的游戏进行编码。
我将第一层(水,草,泥等)存储为2d整数数组,其中每个值[x,y]代表特定的tile。
没关系,但我还需要以某种方式存储第二层(对象)。对于切片,不可能使用二维数组,因为每个对象都有一些附加数据。例如:胸部对象包含有关其中的项目及其编号的数据,烤箱包含有关燃料的数据等等......
我更喜欢永久地将两个图层存储在RAM中,因为我的地图大小不是那么大。我需要在文件中保存layer1和layer2。对于layer1,我使用二进制文件,它快速而简单。
所以我很感兴趣,存储对象层的最有效方法是什么? (再次,我想在游戏操作期间一直将它放在RAM中,并保存二进制文件) 谢谢!
答案 0 :(得分:0)
最简单的方法是存储这样的对象数组:
每个对象数据都可以是可变长度记录,如下所示:
通过这种方式,您可以根据对象类型读取/写入其他对象数据。
答案 1 :(得分:0)
我认为,我可以使用2d数组的可变长度数组来存储它。并使用一些除数将其存储在二进制文件中,即:
http://rghost.ru/8DZHjSm5M.view (图片在这里)
我们在文件中有N * N个这样的记录。
所以arr [0] [0] [0]给了我一种对象,arr [0] [0] [n]给了我一些额外的信息。只需要编写一些解析器代码。
您怎么看?