【问题标题】:How to use an .xnb file in MonoGame on Windows 8?如何在 Windows 8 上的 MonoGame 中使用 .xnb 文件?
【发布时间】:2013-01-10 00:40:56
【问题描述】:

我有一个来自在 Windows 7 上创建的 Windows Phone 项目的 .xnb 文件。我想在 Windows 8 Metro 应用程序中使用相同的资产。我在 Windows 8 上安装了 MSVS 2012 RC,其中有一个来自 MonoGameWindowsMetroApplication 模板的项目。我将 .xnb 文件放在项目 Assets 文件夹中并尝试加载它,但出现异常,告诉我无法加载资产。我需要哪些属性或配置才能使用 .xnb 文件?

【问题讨论】:

    标签: xna monogame


    【解决方案1】:

    虽然 MonoGame 正在开发框架的内容管道部分,但您可以简单地使用与 Windows Phone 7 游戏相同的内容管道引擎来创建内容管道并在 Windows 8 中使用关联的 .xnb 文件XNA MonoGame 项目。

    我有一个关于使用 MonoGame for Windows 8 构建 XNA 游戏的博客教程系列,如果您查看第 3 部分,我将提供完成此操作的分步演练。我的动手实验室和博客上的信息已经过 MonoGame 团队的审核和批准。

    在此处查看信息:http://blogs.msdn.com/b/tarawalker/archive/2013/01/04/windows-8-game-development-using-c-xna-and-monogame-3-0-building-a-shooter-game-walkthrough-part-3-updating-graphics-using-content-pipeline-with-monogame.aspx

    【讨论】:

    • 哇!塔拉沃克。您的博文对帮助我在 Win 8 平板电脑上进行 MonoGame 开发非常重要。谢谢。
    【解决方案2】:

    运行时 Xna 框架有许多读取各种 xnb 文件的类型读取器对象。一些类型读取器用于从 fbx 模型处理的 xnb 文件,其他是从 2d 图像文件处理的 xnb 文件等。

    当你调用content.Load<T>(xnb file name)时,内容管理器使用适当的阅读器将xnb文件的字节信息读入适当的Xna类。 xnb 文件中的字节信息旨在用于特定的 Xna 类,没有其他。地铁没有 Xna 课程。

    所有这一切都说明在 Metro 环境中没有读取这些 xnb 文件的类型读取器。你必须自己写。不过这并不难,这与我所做的相似。我现在通过构建一个 Xna 项目将 fbx 文件处理为 xnb,然后我的 xna 项目将运行时模型的数据写入我自己的二进制文件,该文件是我从 Metro 应用程序中读取的。但我也可以简单地阅读 xnb。我只需要研究 contentManager's & Model 类的类型阅读器来了解字节信息是如何分布的。

    说到底,这只是意味着我不必学习 FBXSDK,这将是引入模型信息的标准方式(并且可以说是首选方式)。

    编辑 - 抱歉,不知道单声道框架的使用。我对此一无所知...也许他们确实有导入 xnb 文件的方法。

    【讨论】:

    • 我的印象是,作为 MonoGame 的 XNA 实现的一部分,它可以读取 xnb 文件,我只是不确定如何。
    【解决方案3】:

    您在develop3D 分支上吗?我认为您需要添加一个虚拟 Content 项目并将其添加到该项目,而不是您的资产,首先构建该项目,然后您需要在 MonoGame 项目中引用该项目。

    昨天我没有成功,因为我正在使用当前的马厩,但是昨天 MonoGame 的一个人告诉我这样做。以下是一些说明:

    https://github.com/mono/MonoGame/wiki/MonoGame-Content-Processing

    【讨论】:

      【解决方案4】:

      在 MonoGame 内容管道中不存在,至少现在不存在。

      这很容易。 1)在VS2010中创建一个xna项目 2)在那里添加你所有的资产。 3)重建你的项目。转到 bin/x86/debug/content 并从那里复制所有内容

      现在转到您的 VS2012 Mono Project bin/x86/debug 查找内容文件夹,如果它在那里复制所有内容,则创建一个内容文件夹并将所有内容复制到那里。

      现在无需更改任何一行代码,只需运行您的项目,您就会发现一切正常!!!

      如果您发现这样做有任何困难,请告诉我。

      【讨论】:

        猜你喜欢
        • 2013-04-20
        • 2013-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多