1

我开始使用 Windows 窗体(不使用 XNA)在 C# 中编写游戏,我正在尝试弄清楚如何保存/加载。

现在我只有主窗体、几个用户控件和一个单独项目中的一个类。

我一直在寻找一个体面的教程,这是我发现的最好的:

http://www.codeproject.com/Articles/1789/Object-Serialization-using-C

这种方法适用于 Windows 窗体游戏吗?或者我有更好的方法吗?

另外,如果这是最好的路线,我将如何将来自多个不同类的数据保存在一个保存文件中,然后读取数据?

不幸的是,我没有任何相关代码。任何提示将非常感谢。

4

2 回答 2

3

连续序列化保存类实例计数,然后保存类实例,然后反序列化类计数及其实例。一种写入方法和一种读取方法,使用格式化程序进行序列化和反序列化。保存所有当前状态,包括生命计数和游戏状态、玩家位置和其他属性。例如看到这个:
阅读:

IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(op.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);
FCnt = (int)formatter.Deserialize(stream);
for (int i = 0; i < FCnt; i++)
{
   facility[i] = (Facility)formatter.Deserialize(stream);
}
stream.Close();

写作 :

IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(FN, FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, FCnt);
for (int i = 0; i < FCnt; i++)
{
formatter.Serialize(stream, facility[i]);
}
stream.Close();
于 2013-05-09T19:55:27.907 回答
2

如果你想为你的游戏序列化数据,你可以考虑创建一个“状态”类并将你想要保存的信息放在那里。然后,您可以一键序列化您的状态对象的实例。

于 2013-05-09T19:46:08.267 回答