我想知道游戏中的关卡设计。我目前的情况是围绕Tiled展开的-我有许多不同的层,其中包含不同类型的对象(对于不熟悉Tiled的任何人,对象不过是具有分配了任意属性的坐标)。
当前,每次对地图文件进行一些更改时,我都会重新编译游戏,以查看所有位置是否正确。如果检测到地图文件更改,是否可以让我的游戏自动重新加载关卡?XNA甚至允许这样做,还是内容管道的工作方式不允许这种方式的动态内容?任何提示或建议都是绝对欢迎的。
我想知道游戏中的关卡设计。我目前的情况是围绕Tiled展开的-我有许多不同的层,其中包含不同类型的对象(对于不熟悉Tiled的任何人,对象不过是具有分配了任意属性的坐标)。
当前,每次对地图文件进行一些更改时,我都会重新编译游戏,以查看所有位置是否正确。如果检测到地图文件更改,是否可以让我的游戏自动重新加载关卡?XNA甚至允许这样做,还是内容管道的工作方式不允许这种方式的动态内容?任何提示或建议都是绝对欢迎的。
Answers:
这是一个敏捷的持久性框架。我不确定新版本是否可以在Windows Phone 7或xbox上运行。
您将使用其持久性编辑器创建一个持久性定义(这很简单,您只需导入程序集并检查要持久化的类/结构上的字段/属性)即可在代码中启动ObjectSpace并从中添加/删除/获取对象。(这些对象被保留)
如果可以创建一个抽象,以便平铺引擎或您所说的任何东西都不在乎它如何获取地图,而只是在它获取所需的地图即可。然后,您可以返回并使用XmlSerializer或Intermediate。(您喜欢的那个)实现这些其他序列化程序所需要做的就是创建抽象的另一种实现(接口或抽象类)。
我认为XNA Creator俱乐部网站上有一个如何在运行时构建内容的示例。它可能不是使用最新框架构建的。这样,如果您已经使用了内容管道,则可以保留旧代码。这是链接:Winform系列2:内容加载