【问题标题】:Save and load the game state to and from a binary file. C++在二进制文件中保存和加载游戏状态。 C++
【发布时间】:2011-08-07 12:38:50
【问题描述】:

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

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 是一个控制整个游戏并包含我需要保存的所有值的类。我认为我遇到的主要问题是游戏包含 2 个向量和一个指向另一个类的指针,但我也需要保存这些值。最好的方法是什么?

【问题讨论】:

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


    【解决方案1】:

    您可以使用一些Boost 序列化函数。

    【讨论】:

      【解决方案2】:

      我敢肯定,对你的班级进行直接的 fwrite 至少在 60 亿个不同的级别上是行不通的。您需要做的是将 X/Y/Z 位置、收集的武器、弹药、当前地图、触发的事件等的数据保存到文件中,可能是通过使用连接和 fwrite-ing 构建一个长 INI 样式的字符串那个。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多