【问题标题】:How to organize an XNA content project to allow editing of game scripts pre-run and at runtime如何组织 XNA 内容项目以允许在运行前和运行时编辑游戏脚本
【发布时间】:2023-04-08 17:41:01
【问题描述】:

现在在我的 XNA 解决方案中,我有 2 个项目,我的主要 XNA 游戏项目和一个 XNA 内容项目。我开始将游戏的某些方面暴露给脚本引擎,主要目的是让自己能够更改行为和数据,而无需关闭游戏、重新编译、重新启动。

现在,当我进行新构建时,它会在 C:\solution\project\bin\x86\Debug 目录中创建二进制文件,并将内容项目中的所有数据复制到 C:\solution\project\bin\ x86\调试\内容。我要解决的问题是把我的游戏脚本放在哪里,这样它们既可以在运行时被游戏访问,又可以在运行之前和运行期间进行编辑,并且不会有更改被下次重建/复制过程覆盖的风险。

如果脚本在我的内容项目中并且我在运行时对其进行了编辑,我可以看到加载脚本更改的唯一方法是检查 C:\solution\project\bin\x86\Debug\Scripts 并进行比较将它放到 C:\solution\projectContent\Scripts 中的同一个脚本文件中,然后加载更新的那个。这看起来很可疑,需要硬编码路径。

有没有更优雅的方法来处理这个问题?

【问题讨论】:

    标签: c# xna


    【解决方案1】:

    您甚至无法在 Windows Phone 或 XBox 上运行时获得这些路径 - 所以您大概是在询问有关 Windows 上的 XNA(如果是,请在您的问题中说明)。

    如果内容管道不需要以任何方式处理您的文件,我建议您将它们放在由Environment.SpecialFolder.ApplicationData 标识的公共位置。该值在 XNA 框架中有效(尽管我不确定它在 PC 以外的平台上指向何处)。

    至于你的开发设置,你可以include these files using a wildcardenvironment variables

    如果这些文件不存在,一个简单的预构建批处理文件可以将它们复制到公共位置 - 这样检查您的代码的人就不需要手动复制这些文件。

    希望这会有所帮助!

    【讨论】:

    • 好吧,我想这增加了一个问题,即如何使脚本在开发中的 PC 上运行时可编辑,但在 wp7 或 xbox 上运行时脚本仍可被游戏查看?
    • 正如我所提到的 - 脚本将在 PC 上可编辑,因为它们都是从 SpecialFolder.ApplicationData 编辑和加载的 - 在 XBox 或 WP7 上它们应该仍然可以从那里运行(文档状态此值适用于 XNA)。它们只是无法编辑,仅此而已。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2015-01-18
    • 2015-01-20
    • 1970-01-01
    • 2021-06-26
    • 2020-06-26
    • 2012-02-07
    相关资源
    最近更新 更多