Windows窗体-我如何保存和加载游戏

本文关键字:保存 加载 游戏 窗体 何保存 Windows | 更新日期: 2023-09-27 18:12:50

我开始在c#中使用Windows窗体(不使用XNA)编写游戏,我正试图找出如何保存/加载。

现在我所有的是主表单,几个用户控件,和一个类在一个单独的项目。

我找了一个不错的教程,这是我找到的最好的:

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

这种方法是否适用于Windows Form游戏?还是有更好的办法?

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

不幸的是我没有任何相关的代码。如有任何建议,不胜感激。

Windows窗体-我如何保存和加载游戏

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

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();

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