我一直在寻找一种简单的方法来保存和加载我的游戏状态,并且尝试了一些方法但无法理解它。这是我保存的东西......
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);
}
Game 是一个控制整个游戏并包含我需要保存的所有值的类。我认为我遇到的主要问题是 Game 包含 2 个 vector 和一个指向另一个类的指针,但我也确实需要在其中保存值。最好的方法是什么?
最佳答案
我很确定直接 fwrite 你的类至少不会在 60 亿个不同的级别上工作。你需要做的是将你的 X/Y/Z 位置、收集的武器、弹药、当前 map 、触发的事件等数据保存到一个文件中,可能是通过使用连接和 fwrite-ing 构建一个长 INI 样式的字符串那个。
然后当游戏加载时,您从字符串中解析数据并重建您的类。
关于c++ - 在二进制文件中保存和加载游戏状态。 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5697318/