保存游戏状态并将其加载到二进制文件中。 C ++

时间:2011-04-17 23:58:47

标签: c++ class file-io vector save

我一直在寻找一种简单的方法来保存和加载我的游戏状态并尝试过一些东西但是无法理解它。这就是我得救的原因......

FILE *file2 = fopen("Save.bin", "w");
if ( file2 != 0){
    fwrite((Game*)game, sizeof(Game), 1, file2);
}

并加载

FILE *file = fopen("Save.bin", "r");
if ( file != 0){
    fread(game, sizeof(Game), 1, file);
}

游戏是一个控制整个游戏的类,包含我需要保存的所有值。我认为我遇到的主要问题是游戏包含2个向量和指向另一个类的指针,但我确实需要将值保存在这些中。最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

我很确定你的班级直接写入将至少在六十亿个单独的级别上不起作用。您需要做的是将X / Y / Z位置的数据,武器收集,弹药,当前地图,触发的事件等保存到文件中,可能是通过使用连接和编写来构建长INI样式的字符串这一点。

然后,当加载游戏时,您将从字符串中解析数据并重建您的类。

答案 1 :(得分:3)

您可以使用一些Boost序列化功能。