0

我正在制作 XNA 4 游戏,我想在我的舞台上为某些区域创建检查点。我想我可以创建玩家对象的“幽灵”对象,每当玩家到达检查点时就会创建该对象。当你想重新加载那个检查点时,你会从那个幽灵玩家所在的地方开始。就目前而言,我认为这将是实现这一目标的一种简单方法(虽然我认为 XML 可能是一个更好的解决方案,但我还不知道如何使用它)。但是玩家有太多的变量(生命值、耐力、弹药、出血计时器、银钥匙、金钥匙、硬币、感染、位置、速度、角度、状态[涉及死亡、感染、流血、燃烧、躲避等],我只是认为像“continuep1 = p1;”这样的语句 (两者都是同一个对象的实例)会将所有变量重新分配给另一个类包含的值,但是当我尝试重新加载“p1 = continuep1”时它不起作用。它似乎没有做任何事情。

所以我想知道,我是否必须一一重新分配所有变量?我应该开始使用 XML 吗?或者有没有一种方法可以分配所有变量而不必一个一个地做?(我不是要代码,除非最后一个问题是可能的)

4

1 回答 1

1

在我看来,我会说是的,开始使用 xml。不用担心使用 xml,一旦你了解它,它就非常简单。一个很好的学习方法是查看以 xml 格式显示的字符信息。

我认为最理想的选择是序列化您的游戏。所以这涉及到存储你的角色的状态、它所处的位置、它面对的方向(当前加载的纹理)和统计数据(健康、耐力、出血等)。

有了这个,您可以在玩家死亡或下次玩游戏时从上次保存中重新加载游戏。这将解决这两种情况。

在我看来,这个关于在 Xna 4 中制作自上而下的 RPG 游戏的教程非常好,并且非常详细。本教程中的许多技术不仅仅适用于这种类型和风格的游戏。

http://xnagpa.net/xna4rpg.php

第 11A 部分(游戏编辑器)是指导读者为他们的游戏制作编辑器的教程的第一部分。有了这个 Winforms 项目,可以将项目、类、任务等添加到游戏中并存储为 Xml 文件。第 6 页底部以及第 7 页和第 8 页概述了序列化和反序列化游戏的方法。

Part 11C(Game Editor),特别是在第9页和第10页的底部。介绍了一种将游戏序列化的保存游戏方法。您也可以查看新游戏并打开游戏方法。

这些方法与 DataManager 类一起使用,这些类将项目、类等存储在Dictionary's. 这可能是您希望对游戏信息进行建模的方式,否则可能必须更改这些指南中的代码才能与您的解决方案一起使用。

我认为最好提供我学习这个主题的资源,而不是反刍它。我建议阅读此内容,而不仅仅是我指出的页面。此外,在后面的教程中,序列化更进一步,文件存储在 .xnb 中,这是一种更安全的信息存储方式。

我希望这对您有所帮助,并且您会欣赏正确方向的指南,而不是仅仅给出答案。此外,无论如何,这不是一项可以用一种方法解决的任务。

让我知道你的进展情况,我很乐意提供更多帮助。

于 2013-12-23T09:16:28.100 回答