如何创建/上传/更新XML文件来为游戏添加不同的关卡



我正在尝试编辑/更新我拥有的当前XML文件,稍微编辑级别,但在notepad++中编辑它们/在内容中更新它们时,什么都没有发生。

我第一次使用XML级别编辑,前2个级别我设法在网上找到,但我想编辑它们/添加我自己的。

我应该改变代码中的一些东西,或者以不同的方式更新它们吗?

这是在Game1类中加载关卡的代码

这是Level类

这是我在当前Level1中的代码,这些值代表不同的对象

我试图在notepad++中编辑XML文件,并在VS内,但不确定我是否做错了什么。正如我所说,我是一个乞丐,这是我第一次这样做,这就是我在这里的原因。

提前感谢您的帮助。

如果你需要任何额外的代码,我会尽快上传。

正如我所说的,我想要实现的是编辑当前文件,例如,我将有一个5的布局,而不是2x 5的数组布局,我将有一个5的布局和一个1的布局

<Level>
<layout>
<ArrayOfInt>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
</ArrayOfInt>
<ArrayOfInt>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>
<int>5</int>

查找c#序列化。这是一个很好的起点。实际发生的事情被分成多个"任务",每个任务负责不同的事情:

  1. Xml*类(如XmlSerializer)

它们负责顶层的序列化和反序列化。在底层,它们还解析、验证、解释(以及更多)XML文件。这个步骤是文本和文本之间的桥梁。文件(如果忽略语法和它的"函数",XML基本上就是这样)和编程语言(在我们的例子中是c#)。

  1. XML

这很简单。在你的例子中,它只是对象的序列化表示。一大堆数据之后会变成对象。

  1. c#属性(如XmlElement,XmlArrayXmlAttribute)

这就是';binds"任何XML数据类型或结构都可以表示为对象。

您将编写的代码是您的工作流如何解释XML。代码中似乎缺少的是结构/类上的Xml*属性。请参阅MS Learn文章并从那里开始。

需要说明的是,对于简单的级别来说,XML过于冗长且容易出错。一个二进制文件,每平方一个字节…

很可能您添加或删除了一行,导致数组填充错误。确保行数与原始级别的行数相匹配,或者不小心改变了开始或结束标记。


另一种可能是内容构建过时。

您没有说明CLI或VS,所以我将两者都给出。

CLI:

dotnet clean

然后像往常一样构建。

VS:

选择Build菜单并选择rebuild。


真正的错误信息应该在此时出现。

最新更新