我很遗憾在我的游戏中将* .txt级别文件存储在何处以及如何存储。
我在游戏中想要的是游戏中安装的一些“预烘焙”级别的可用性,以及用户创建其OWN级别的能力。
所以我所做的是在视觉工作室内创建一个名为levels的“内容”中的新目录,然后在其中放置一个“level1.txt”。但我可以访问级别* .txt文件的唯一方法是使用完整路径,我不能在我的visual studio解决方案中包含它们,因为它不构建:
"C:\My Documents\blahblabh....\levels\level1.txt"
任何指针都会受到欢迎!谢谢
编辑:Re:自定义内容处理器。这似乎比我需要的更复杂。但我也需要将我的游戏部署到xbox360,存储设备也可以工作吗?答案 0 :(得分:3)
你可以编写一个自定义内容处理器来处理你的关卡文件,但它可能有点过分。这样做的好处是,您可以将级别“编译”为某种格式,这对用户来说更难以修改。
您只需将其添加到项目中(而不是在内容中),并在属性中指定“复制到输出目录 - 始终复制”。在项目中创建一个新的子文件夹并将其放在那里 - 这将是它被复制到的目录。
如果不允许用户删除预烘焙级别,则Windows无法允许这样做。您可以检查代码,如果用户要删除某些预期文件,则会导致代码失败。
要创建新目录,可以使用StorageDevice.OpenContainer()。Path获取根路径并使用Directory.CreateDirectory。这将适用于PC和XBox。
答案 1 :(得分:0)
你绝对应该将“预烘焙”级别与可执行文件放在一起。我不使用VS,所以我不能告诉你如何做到这一点。
确实无法阻止用户删除您的关卡,但您可以使用哈希来验证它们是否未被修改(用户仍然可以通过修改您的可执行文件解决此问题,但这应该会阻止大多数用户)
您应该将自定义级别放在用户的文件夹中,例如C:\Documents and Settings\User\MyGame\levels\level.txt
。