c# - Windows 窗体 - 如何保存和加载游戏?

标签 c# winforms

<分区>

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

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

我一直在寻找一个像样的教程,这是我找到的最好的教程:

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

这种方法适用于 Windows 窗体游戏吗?还是我可以采用更好的方法?

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

很遗憾,我没有任何相关代码。任何提示将不胜感激。

最佳答案

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

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

关于c# - Windows 窗体 - 如何保存和加载游戏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16469829/

相关文章:

c# - 允许在 .NET TreeView 中进行多选

c# - 如何启动一个停止的线程

c# - Windows 窗体计算增量鼠标移动负值

c# - 将 tsql 与应用程序一起打包

c# - 统一 IoC : Create instance of an interface without constructor dependency injection

c# - 解析时出现 JSON 错误

c# - Razor Pages - 部分 View 和从模型获取数据的问题

c# - 指定用户在文本框中输入数据的方式

c# - 当它绑定(bind)到 XmlDataProvider 时,如何在 WPF DataGrid 中创建一个新行?

c# - 自定义文本框控件