1

我被告知内存映射文件是一种可能的方式来获得快速文件 i/o 以存储 2d 游戏瓷砖地图。游戏将频繁更新数据,我将知道要更新的行/列,因此我可以在数组中以这种方式直接访问。但是看一些例子我不明白这是如何工作的。

有没有人有一个创建,读取和写入结构的内存映射文件的小例子,其中结果将是一个一维数组,所以我可以为我的游戏访问它 map[row * MAX_ROW + col].tileID = X; 例如。Boost 或 Win 32 会很好 我没有偏好,但我发现网上的例子有点令人困惑,而且通常很难将它们转换为我想要的结果。

4

1 回答 1

3

这里有一个看起来有点可以理解的例子:提升内存映射文件的问题:它们进入磁盘而不是 RAM

请注意为您提供 char* 的 .data() 成员,您可以将其强制转换为指向数组的指针,该数组包含您想要的任何内容,只要有足够的内存就可以了。

也就是说,我高度怀疑内存映射文件是错误的解决方案。为什么不直接使用普通的 C++(向量、类、ifstreams 等)加载关卡,随意修改它,如果你想将更改保存到磁盘,在完成后再次写出来?

于 2012-12-31T00:56:49.400 回答