我开始使用Windows窗体(不使用XNA)在C#中编写游戏,我试图弄清楚如何保存/加载。
现在我所拥有的只是主要表单,一些用户控件和一个单独项目中的一个类。
我找了一个体面的教程,这是我发现的最好的:
http://www.codeproject.com/Articles/1789/Object-Serialization-using-C
此方法适用于Windows窗体游戏吗?或者我有更好的方法吗?
另外,如果这是最佳路线,我如何在一个保存文件中保存来自几个不同类的数据,然后读取数据?
不幸的是我没有任何相关的代码。任何提示将不胜感激。
答案 0 :(得分: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();
答案 1 :(得分:2)
如果您想为游戏序列化数据,可以考虑创建一个&#34;州&#34;上课并将要保存的信息放在那里。然后,您可以在一次命中中序列化状态对象的实例。