我正在制作一个XNA 4游戏,我想在我的舞台上为某些区域创建检查点。我想我可以创建一个玩家对象的“幽灵”对象,只要玩家到达检查点就会创建该对象。当你想重新加载那个检查点时,你将开始到那个幽灵玩家的位置。 至于现在,我认为这将是一个简单的方法来实现这一点(虽然我认为XML可能是一个更好的解决方案,但我不知道如何使用它,但)。但玩家有太多变量(健康,耐力,弹药,流血计时器,银钥匙,金钥匙,硬币,感染,位置,速度,角度,状态[涉及死亡,感染,流血,灼烧,躲避等],我只是认为像“continuep1 = p1;”(两者都是同一个对象的实例)这样的状态会将所有变量重新分配给另一个类包含的值,但当我尝试重新加载“p1 = continuep1”时它不起作用。它似乎没有做任何事情。
所以我想知道,我是否必须逐个重新分配所有变量?我应该开始使用XML吗?或者有没有办法分配所有变量而不必逐个进行? (我不是要求代码,除非最后一个问题是可能的)
答案 0 :(得分:1)
在我看来,我会说是的,开始使用xml。不要担心使用xml,一旦你了解它就很简单了。一个很好的学习方法是看到你的角色信息以xml格式显示。
我认为最理想的选择是将游戏序列化。所以这涉及存储角色的状态,它所处的位置,它面对的方向(当前加载的纹理)和统计数据(健康,命名,流血等)。
有了这个,你可以在玩家去世或下次玩游戏时从最后一次保存中重新加载你的游戏。这将解决这两种情况。
在Xna 4中制作自上而下RPG游戏的教程在我看来非常好,并且详细介绍。本教程中的许多技术不仅适用于这种类型和游戏风格。
第11A部分(游戏编辑器)是指导读者为他们的游戏制作编辑器的教程的第一部分。使用此Winforms项目项目,类,任务等可以添加到游戏中并存储为Xml文件。在第6页的底部,第7页和第8页概述了序列化和反序列化游戏的方法。
在第11C部分(游戏编辑器)中,特别是在第9页和第10页的底部。引入了一种将游戏序列化的保存游戏方法。您也可以查看新游戏和打开游戏方法。
这些方法适用于在Dictionary
中存储项目,类等的DataManager类。这可能是您想要为游戏信息建模的方式,如果不是,可能必须更改这些指南中的代码才能使用您的解决方案。
我认为最好提供我的学习这个主题的来源,而不是反思它。我建议阅读这个,而不仅仅是我指出的页面。此外,在后面的教程中,序列化更进一步,文件存储在.xnb中,这是一种更安全的信息存储方式。
我希望这有所帮助,并且你会向正确的方向欣赏指南,而不是仅仅给出答案。此外,这不是一个可以用一种方法解决的任务。
让我知道你是如何继续前进的,我很乐意提供更多帮助。