作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
许多游戏提供保存功能,使得玩家在游戏中的进度可以被保存,并在以后再玩的时候进行加载。保存游戏的过程通常涉及将每个游戏对象的成员变量序列化为文件。要实现这个功能,可以采取许多格式,其中之一就是 JSON - 使用 QJsonDocument。如果不希望保存的文件可读,或者不需要保持文件大小,还能够以二进制格式序列化文档,这就厉害了O(∩_∩)O。
下面,将演示如何以 JSON 和二进制格式来保存和加载一个简单的游戏。
Character 类
Character 类表示游戏中的非玩家角色(NPC),并存储玩家的姓名、级别和类类型。
提供了 read() 和 write() 函数来序列化成员变量。
class Character
{
public:
enum ClassType {
Warrior, Mage, Archer
};
Character();
Character(const QString &name, int level, ClassType classType);
QString name() const;
void setName(const QString &name);
int level() const;
void setLevel(int level);
ClassType classType(